home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / data / dora / doraview.plp < prev    next >
Text File  |  1995-08-13  |  74KB  |  2,835 lines

  1. /************************************************************************
  2. *    共通処理ルーチン                        *
  3. *************************************************************************/
  4. /*    DORA?.TMP を削除する    */
  5. %DELDIRF{
  6.     delfile(TEMP2|{doradir.tmp});
  7.     delfile(TEMP2|{doratext.tmp});
  8.     delfile(TEMP2|{doratext.new});
  9.     delfile(TEMP2|{doraedt.tmp});
  10.     delfile(TEMP2|{escctr.log});
  11.     delfile(TEMP2|{temp.$a$});
  12.     delfile(TEMP2|{comtxt.tmp});
  13.     delfile(TEMP2|{comtree0.tmp});
  14.     delfile(TEMP2|{comtree.tmp});
  15.     delfile(TEMP2|{doradir_.tmp});
  16.     delfile(TEMP2|{doradir0.tmp});
  17.     delfile(TEMP2|{doradir1.tmp});
  18.     delfile(TEMP2|{_lzhdir.tmp});
  19.     delfile(TEMP2|{doramemo.bak});
  20.     };
  21. /*    ディクトリ一覧表示からの指定ファイル名取り出し    */
  22. %PickFile{
  23.     LineNo:= @xlinenum;
  24.     MemoLine:=@nolmemo(memono)-1;
  25.     line1:=    @case    (LineNo>MemoLine,
  26.             {Yes},
  27.             {
  28.             case(@getchar(@memo(memono,MemoLine,1),1,14)
  29.                     ={              }&&MemoLine>1,{Yes},
  30.                 {im(@memo(memono,MemoLine-1,1))},,
  31.                 {im(@memo(memono,MemoLine,1))})
  32.             },
  33.             {No},
  34.             {
  35.             case    (LineNo<=0,
  36.                 {Yes},    {im(@memo(memono,1,1))},
  37.                 {No},
  38.                 {
  39.                 case(@getchar(@memo(memono,LineNo,1),1,14)
  40.                     ={              }&&LineNo>1,{Yes},
  41.                     {im(@memo(memono,LineNo-1,1))},,
  42.                     {im(@memo(memono,LineNo,1))})
  43.                 });
  44.             });
  45.     case(@getchar(line1,1,2)={  }||@getchar(line1,1,2)={+ },
  46.         {Yes},{file1:=@subdir(logdir,@head(@getchar(line1,3),{ }))},,
  47.         {
  48.         case(@nochar(@subdir(logdir,@head(line1,{ })))<65,{Yes},
  49.             {display(@subdir(logdir,@head(line1,{ })));
  50.             file1:=@subdir(logdir,@head(line1,{ }))});
  51.         });
  52.     };
  53.  
  54. %l    {case    (level>9,{Yes},{im({_})},,{im(level)})};
  55.  
  56. %txldir    {
  57.     [level]
  58.     %dtf TEMP2|{doradir}|@l|{.tmp};
  59.     %d1    @getline(dirlist,level+1,1);
  60.     %dv @case(DIVE,{Yes},{im({-r })},{No},{im({})});
  61.     %if @case(INFO,    {Yes},{im({-i })},
  62.             {Def},{im({-i -F })},
  63.             {No},{im({})});
  64.     %st @case(STYPE,{u},{im({})},,{im({-}|STYPE|DORD|FORD|{ })});
  65.     %sdir    @case(current=level||level>9,{Yes},{im(logdir)},,
  66.             {im(@head(d1,CRLF))});
  67.     case    (DEBUG,{Yes},
  68.         {display({logdir=}|logdir|CRLF|{current=}|current|{  }|
  69.             {level=}|level|{  }|{dirlist=}|d1)});
  70.     setcdir(CDIR);
  71.     dispoff(!DEBUG);
  72.     /*command({txl }|dtf|{ -dir }|dv|st|if|sdir);*/
  73.     command({txl doratxl.set -dir }|dv|st|if|sdir|{ }|dtf);
  74.     dispoff({No});
  75.     case    (logdir|CRLF=d1,
  76.         {No},
  77.         {
  78.         case    (level,
  79.             0,
  80.             {dirlist:=sdir|CRLF|
  81.                 @getline(dirlist,2)},
  82.             9,
  83.             {dirlist:=@getline(dirlist,1,9)|
  84.                 sdir|CRLF},
  85.             ,
  86.             {dirlist:=@getline(dirlist,1,level)|
  87.                 sdir|CRLF|
  88.                 @getline(dirlist,level+2);
  89.             });
  90.         });
  91.     };
  92. %chkdirf{
  93.     [dir]    /* 引数で指定されたディレクトリの情報があれば更新する    */
  94.     case    (dir,{all},
  95.         {
  96.         dirlist:=CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF;
  97.         DELDIRF;
  98.         },
  99.         ,
  100.         {
  101.         var    n    [2];
  102.         var    x    [1];
  103.         n:=0;
  104.         loop    ({
  105.             case    (@getline(dirlist,n+1,1)=dir|CRLF,
  106.                 {Yes},
  107.                 {
  108.                 txldir(n);x:=1;im({No})
  109.                 },
  110.                 {No},{n:=n+1;im(n<10)}
  111.                 );
  112.             });
  113.         case(x=1,{No},{txldir(10)});
  114.         });
  115.     };
  116. /************************************************************************
  117. *    ログ参照メイン処理                            *
  118. *************************************************************************/
  119. %ViewLOG{
  120.     [logdir,memono,level]
  121.     case(DEBUG,{Yes},{display({ViewLOG(}|logdir|{)\n});
  122.         display({Btitle(}|Btitle|{)\n})});
  123.     InactMemo;
  124.     moveline:=1;
  125.     case    (Btitle,
  126.         {BaC},
  127.         {    case    (logdir,
  128.                 {*BACKLOG},{BackLog1})
  129.         },
  130.         {BoD},
  131.         {
  132.         case    (@filechk(LOG2|{board\title.txt}),
  133.             {Yes},{Viewlog2},
  134.             {No},
  135.             {footnote({title.txtが無いですよ!});
  136.             Btitle:={};wait(2);Viewlog1
  137.             });
  138.         },
  139.         {FiL},
  140.         {
  141.         case    (@filechk(LOG2|{datalib\}|NET|{dlib.lst}),
  142.             {Yes},{Viewlog3},
  143.             {No},{footnote(NET|{dlib.lstが無いですよ!});
  144.                     Btitle:={};wait(2);Viewlog1})
  145.         },
  146.         {NeW},
  147.         {
  148.         txldir(level);
  149.         case    (@filechk(TEMP2|{doradir}|@l|{.tmp})={Yes} &&
  150.              @fileleng(TEMP2|{doradir}|@l|{.tmp})>0,
  151.             {Yes},
  152.             {
  153.             %lineno @noline(@read(TEMP2|{doradir}|@l|{.tmp}));
  154.             Viewlog4
  155.             },
  156.             {No},
  157.             {
  158.             case(DEBUG,{Yes},{display(logdir|{ は空です\n})});
  159.             footnote({ }|logdir|{ は空です});wait(1);
  160.             });
  161.         },
  162.         {ToD},{dayLOG(Todayfile)},
  163.         {LoG},{ReadFL},
  164.         {DeN},{ReadFL},
  165.         {MiL},{ReadFL},
  166.         {MaL},{Viewlog1},
  167.         ,
  168.         {
  169.         txldir(level);
  170.         case    (@filechk(TEMP2|{doradir}|@l|{.tmp})={Yes} &&
  171.              @fileleng(TEMP2|{doradir}|@l|{.tmp})>0,
  172.             {Yes},
  173.             {
  174.             %lineno @noline(@read(TEMP2|{doradir}|@l|{.tmp}));
  175.             Viewlog1
  176.             },
  177.             {No},
  178.             {
  179.             case(DEBUG,{Yes},{display(logdir|{ は空です\n})});
  180.             footnote({ }|logdir|{ は空です});wait(1);
  181.             });
  182.         });
  183.     DeleteMemo(memono);Btitle:={};
  184.     setcdir(CDIR);
  185.     };
  186.  
  187. /*伝言板&メール&本日のログ表示*/
  188. %Mden    {[LOGFILE]
  189.     %m1    memono;
  190.     InactMemo;case(@mlast>=m1,{Yes},{mclear(m1)});
  191.     case    (@filechk(matubi),
  192.         {Yes},
  193.         {mread(matubi,m1);
  194.         mopen(m1,0,21,639,459,{w});
  195.         loop    ({footnote({EXIT戻る削除更新伝言},{b});
  196.         waitx();
  197.         case    (@xtype,
  198.             101,{InactMemo;Btitle:={};
  199.                 FLG:={Return};im({No})},
  200.             201,{InactMemo;Btitle:={};
  201.                 FLG:={Return};im({No})},
  202.             102,{InactMemo;im({No})},202,{InactMemo;im({No})},
  203.             103,delLOG,    203,delLOG,
  204.             104,{updLOG(m1)},204,{updLOG(m1)},
  205.             105,Gather,    205,Gather,
  206.             m1,{Gather},
  207.             ,{im({Yes})}
  208.             )})
  209.         },
  210.         {No},{footnote(Name|{が見つかりません});
  211.             display(matubi|{が見つかりません});
  212.             wait(3);Btitle:={};});
  213.     };
  214. /*    「ago」前の月日を「MMDD」の形式で返す    */
  215. %getMD{[ago]
  216.     var today[25];var MONTH[5];var DAY[5];
  217.     %plus    {[DATA]
  218.         case(@nochar(DATA),
  219.             {1},{im({0}|DATA)},
  220.             {2},{im(DATA)}
  221.             )
  222.         };
  223.     %lastmonth{case(@plus(MONTH),
  224.             {01},{im({31})},{02},{im({31})},{03},{im({28})},
  225.             {04},{im({31})},{05},{im({30})},{06},{im({31})},
  226.             {07},{im({30})},{08},{im({31})},{09},{im({31})},
  227.             {10},{im({30})},{11},{im({31})},{12},{im({30})
  228.         })};
  229.     today:=@daylong;
  230.     MONTH:=@getchar(today,6,2);    DAY  :=@getchar(today,9,2);
  231.     case(DAY-ago<1,{Yes},{
  232.         loop({    DAY:=DAY+@lastmonth;
  233.             case(@plus(MONTH),
  234.                 {01},{MONTH:=12;},
  235.                      ,{MONTH:=MONTH-1}
  236.             );
  237.             im(DAY-ago<1);
  238.         })});
  239.     DAY:=DAY-ago;
  240.     im(@plus(MONTH)|@plus(DAY))
  241.     };
  242. %dayLOG    {[LOGFILE]
  243.     var lastday[64];lastday:= @im(LOG2|NET|@getMD(1)|{.LOG});
  244.     var last2day[64];last2day:= @im(LOG2|NET|@getMD(2)|{.LOG});
  245.     %m1    memono;
  246.     var sakko[4];var Sakkon[3];var kareki[16];Sakkon:={};
  247.     case    (@filechk(lastday) && lastday<>Todayfile,
  248.         {Yes},{sakko:={昨呼}},
  249.         {No},{        
  250.         case    (@filechk(last2day) && last2day<>Todayfile,
  251.             {Yes},
  252.             {sakko:={一昨}},
  253.             {No},{sakko:={    }    
  254.             })
  255.         });
  256.     %TREE    {
  257.         var    a    [6];
  258.         case    (Sakkon,
  259.             {Yes},{kareki:={        枯木    }},
  260.             ,{kareki:={ 木  草         }
  261.             });
  262.         loop    ({
  263.             SNDMSG({erande_f.snd});
  264.             footnote({    戻る            }|kareki|
  265.                  {        },{b});
  266.             waitx();
  267.             a:=@case(@xtype,
  268.                 102,{im({cancel})},    202,{im({cancel})},
  269.                 106,{ViewTRE2(m1,LOGFILE,{2})},
  270.                 206,{ViewTRE2(m1,LOGFILE,{2})},
  271.                 107,{ViewTRE2(m1,LOGFILE,{1})},
  272.                 207,{ViewTRE2(m1,LOGFILE,{1})},
  273.                 108,{ViewTRE2(m1,TEMP2|{doratext.tmp},{2})},
  274.                 208,{ViewTRE2(m1,TEMP2|{doratext.tmp},{2})},
  275.                 ,{im({Yes})}
  276.                 );
  277.             });
  278.         im(a={cancel}||a={Yes});
  279.         };
  280.     %CALlast{
  281.         delfile(TEMP2|{doratext.tmp});Sakkon:={Yes};
  282.         case    (sakko,
  283.             {昨呼},{InactMemo;mclear(m1);mread(lastday,m1)},
  284.             {一昨},{InactMemo;mclear(m1);mread(last2day,m1)
  285.             });
  286.         InactMemo;madd(m1,@read(LOGFILE));
  287.         mwrite(TEMP2|{doratext.tmp},m1);
  288.         mopen(m1,0,21,639,459,{w});
  289.         case    (ESCon={No},{No},{ESC});
  290.         im({Yes})
  291.         };
  292.     InactMemo;case(@mlast>=m1,{Yes},{mclear(m1)});
  293.     case    (@filechk(LOGFILE),
  294.         {Yes},
  295.         {mread(LOGFILE,m1);
  296.         mopen(m1,0,21,639,459,{w});
  297.         case    (ESCon={No},{No},{ESC});
  298.         loop    ({
  299.             footnote({EXIT戻る削除更新コメント解石}|
  300.                     {ESC TREE}|sakko|{98罫PROF},{b});
  301.             waitx();
  302.             case    (@xtype,
  303.                 101,{InactMemo;Btitle:={};
  304.                     FLG:={Return};im({No})},
  305.                 201,{InactMemo;Btitle:={};
  306.                     FLG:={Return};im({No})},
  307.                 102,{InactMemo;im({No})},
  308.                 202,{InactMemo;im({No})},
  309.                 103,delLOG,    203,delLOG,
  310.                 104,{updLOG(m1)},204,{updLOG(m1)},
  311.                 105,{COMMENT(m1)},205,{COMMENT(m1)},
  312.                 106,ISH,    206,ISH,
  313.                 107,{ESC},    207,{ESC},
  314.                 108,TREE,    208,TREE,
  315.                 109,{case(sakko<>{    },
  316.                     {Yes},{CALlast},{No},{im({Yes})})},
  317.                 209,{case(sakko<>{    },
  318.                     {Yes},{CALlast},{No},{im({Yes})})},
  319.                 110,{JIS98(m1)},210,{JIS98(m1)},
  320.                 111,{PROFILE(m1)},211,{PROFILE(m1)},
  321.                 m1,{COMMENT(m1)},
  322.                 ,{im({Yes})}
  323.                 )
  324.             })
  325.         },
  326.         {No},{footnote(Todayfile|{が見つかりません});
  327.             display(Todayfile|{が見つかりません});
  328.             wait(3);Btitle:={};
  329.         });
  330.     };
  331. %ReadFL    {var matubi[78];var Name[14];var malMth[4];
  332.     case    (Btitle,
  333.         {LoG},{matubi:=@im(LOG2|NET|DAY2|DAY5|{.LOG});
  334.             Name:={今日のログ};dayLOG(matubi)},
  335.         {DeN},{matubi:=@im(RTTL2|NET|{_}|DAY2|{.GAT});
  336.             Name:={今月の伝言板};Mden(matubi)},
  337.         {MiL},{malMth:={今};matubi:=@im(RTTL2|NET|{_}|DAY2|{.MIL});
  338.         case    (@filechk(matubi),
  339.             {No},{malMth:={先};
  340.                 matubi:=@im(RTTL2|NET|{_}|DAY3|{.MIL});
  341.             case    (@filechk(matubi),
  342.                 {No},{malMth:={先々};
  343.                 matubi:=@im(RTTL2|NET|{_}|DAY4|{.MIL})
  344.                 })
  345.             });
  346.             Name:=malMth|{月のメール};dayLOG(matubi)});
  347.     };
  348.  
  349. /* ログファイル名の変更処理 */
  350. %Rename1{
  351.     PickFile;
  352.     footnote({ファイル名を変更しています});
  353.     case    (@body(line1,{<},{>})={DIR},
  354.         {Yes},
  355.         {
  356.         footnote({ディレクトリ名は変更できません});
  357.         wait(1);
  358.         },
  359.         {No},
  360.         {
  361.         SNDMSG({nyuryo_f.snd});
  362.         footnote({新しいファイル名を入力して下さい});
  363.         %file2    @input({新しいファイル名を入力して下さい},,
  364.                 @tail(file1,{\}));
  365.         case    (file2={}||file2=@tail(file1,{\})||
  366.             @filechk(@body(file1,,{\})|file2),
  367.             {No},
  368.             {
  369.             footnote({ファイル名を変更しています});
  370.             dispoff(!DEBUG);
  371.             command({rename }|file1|{ }|file2);
  372.             chkdirf(logdir);
  373.             });
  374.         });
  375.     im({Yes});
  376.     };
  377. /* ログファイルの複写処理 */
  378. %Copy1    {
  379.     PickFile;
  380.     footnote({ファイルを複写します});
  381.     case    (@body(line1,{<},{>})={DIR},
  382.         {Yes},
  383.         {
  384.         footnote({ディレクトリは複写できません});
  385.         wait(1);
  386.         },
  387.         {No},
  388.         {
  389.         SNDMSG({erande_f.snd});
  390.         footnote({複写先を指定して下さい  複写元=}|file1);
  391.         setcdir(logdir);
  392.         %file2    @filesel;
  393.         %cdir1    @getcdir;
  394.         %cdir2    @dir2(cdir1);
  395.         case    (file2={},
  396.             {No},
  397.             {
  398.             footnote({ファイルを複写します});
  399.             copyfile(LOGFILE,file2);
  400.             });
  401.         });
  402.     im({Yes});
  403.     };
  404. %ESC2    {%cdir @getcdir;
  405. case    (memono+2=@mlast,
  406.     {Yes},{
  407.     footnote({メモ}|memono+2|{のESC制御記号をカット中です});
  408.     InactMemo;setcdir(CDIR);
  409.     delfile(TEMP2|{temp.$a$});
  410.     delfile(TEMP2|{escctr.log});
  411.     mwrite(TEMP2|{escctr.log},memono+2);
  412.     setcdir(CDIR);
  413.     case    (DEBUG,{Yes},
  414.     {display({escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log  })});
  415.     dispoff(!DEBUG);
  416.     command(CDIR2|{escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log});
  417.     command({dir});
  418.     dispoff({No});
  419.     case    (@filechk(TEMP2|{escctr.log}),
  420.         {Yes},
  421.         {
  422.         mclear(memono+2);
  423.         mread(TEMP2|{escctr.log},memono+2);
  424.         mopen(memono+2,0,161,639,379);
  425.         %memomax @mlast;
  426.         var    memono1    [2];
  427.         memono1:=memono+2;
  428.         loop    ({
  429.             case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
  430.             memono1:=memono1+1;
  431.             im(memono1<=memomax);
  432.             });
  433.         mclose(1);
  434.         mopen(memono+1,0,241,639,459,{w});
  435.         },
  436.         {No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
  437.                 {ディレクトリに必要です\n});
  438.         wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
  439.         },
  440.     {No},{footnote({参照用のファイルをオープンしてからで無いと、}|
  441.                 {この機能は使えません});wait(3);
  442.         });
  443.     setcdir(cdir)
  444.     };
  445. %ESC3    {%cdir @getcdir;
  446.     %No @mlast;
  447.     footnote({メモ}|No|{のESC制御記号をカット中です});
  448.     InactMemo;setcdir(CDIR);
  449.     delfile(TEMP2|{temp.$a$});
  450.     delfile(TEMP2|{escctr.log});
  451.     mwrite(TEMP2|{escctr.log},No);
  452.     setcdir(CDIR);
  453.     case    (DEBUG,{Yes},
  454.     {display({escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log  })});
  455.     dispoff(!DEBUG);
  456.     command(CDIR2|{escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log});
  457.     command({dir});
  458.     dispoff({No});
  459.     case    (@filechk(TEMP2|{escctr.log}),
  460.         {Yes},
  461.         {
  462.         mclear(No);
  463.         mread(TEMP2|{escctr.log},No);
  464.         mopen(No,0,161,639,379);
  465.         %memomax @mlast;
  466.         var    memono1    [2];
  467.         memono1:=No;
  468.         loop    ({
  469.             case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
  470.             memono1:=memono1+No;
  471.             im(memono1<=memomax);
  472.             });
  473.         mclose(1);
  474.         mopen(memono+1,0,241,639,459,{w});
  475.         },
  476.         {No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
  477.                 {ディレクトリに必要です\n});
  478.         wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
  479.     setcdir(cdir)
  480.     };
  481. /* ボード「ログマークの追加処理」 */
  482. %BChek    {
  483.     %Chek @memo(memono);
  484.     %size    @nochar(Chek)+@noline(Chek)*8;
  485.     var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
  486.     dispoff(!DEBUG);
  487.     delfile(TEMP2|{doradir}|@l|{.tmp});
  488.     setcdir(CDIR);
  489.     command({txl -dir }|RTTL2|{ }|TEMP2|{doradir}|@l|{.tmp});
  490.     dispoff({No});
  491.     %Bdir @read(TEMP2|{doradir}|@l|{.tmp});
  492.     case    ( @filechk(TEMP2|{_bchek.tmp}),
  493.         {Yes},
  494.         {delfile(TEMP2|{_bchek.tmp})}
  495.         );
  496.     footnote({<ログ>マークの処理中です[対象データ=}|@nochar(Chek)|{byte]});
  497.     display({<ログ>マークの処理中です[対象データ=}|@nochar(Chek)|{byte]\n});
  498.     loop    ({    n:=n+1;line1:={};
  499.         case    (n=15||n=25||n=35||n=50||n=70,
  500.             {Yes},{footnote({*マークの処理中です[}|@nochar(y)|
  501.             {byte]処理しました})
  502.             });
  503.         %a    @getline(Chek,n,1);
  504.         case    (a={},    
  505.             {Yes},{im({No})},,
  506.             {var MesNo[80];MesNo:=@head(@body(a,{#}),{ });
  507.             %LOGF1 @im(NET|{_}|DAY2|{.}|MesNo);
  508.             %LOGF2 @im(NET|{_}|DAY3|{.}|MesNo);
  509.             %LOGF3 @im(NET|{_}|DAY4|{.}|MesNo);
  510.             case    (@exist(Bdir,LOGF1)||@exist(Bdir,LOGF2)
  511.                 ||@exist(Bdir,LOGF3),
  512.                 {Yes},
  513.                 {InactMemo;
  514.                 case    (@getchar(a,1,4)={<ログ},
  515.                     {Yes},    /* 変更なし */
  516.                     {y:=y|a},
  517.                     {No},    /* 変更あり */
  518.                     {
  519.                     case    (@getchar(a,1,1)={#}||
  520.                         @getchar(a,1,2)={*#}||
  521.                         @getchar(a,1,2)={* },
  522.                         {Yes},
  523.                         {
  524.                         case    (@getchar(a,1,2)={* },
  525.                         {Yes},
  526.                         {line1:=@getchar(a,3)});
  527.                         case    (@getchar(a,1,4)={<ログ},
  528.                         {Yes},
  529.                         {line1:=@getchar(a,6)},
  530.                         {No},
  531.                         {line1:=@getchar(a,1)});
  532.                         y:=y|{<ログ>}|line1
  533.                         },
  534.                         {No},{y:=y|a}
  535.                         );
  536.                     });
  537.                 },
  538.                 {No},
  539.                 {InactMemo;
  540.                 case    (@getchar(a,1,2)={* }||
  541.                     @getchar(a,1,4)={<ログ},
  542.                     {Yes},    /* 変更あり */
  543.                     {
  544.                     case    (@getchar(a,1,2)={* },
  545.                         {Yes},
  546.                         {line1:=@getchar(a,3)});
  547.                     case    (@getchar(a,1,4)={<ログ},
  548.                         {Yes},
  549.                         {line1:=@getchar(a,6)});
  550.                             y:=y|line1},
  551.                     {No},    /* 変更なし */
  552.                     {y:=y|a}
  553.                     );
  554.                 });im({Yes})
  555.             });
  556.         });
  557.     InactMemo;mclear(memono);
  558.     %LISTbod @LINECUT(y);
  559.     madd(memono,LISTbod);
  560.     mopen(memono,0,21,639,459,{w});
  561.     LOGFILE:=@subdir(logdir,{title.txt});
  562.     };
  563. /* ファイルボード看板「*マークの追加処理」 */
  564. %FBChek    {footnote({*マークの処理中です});
  565.     %Chek @memo(memono);
  566.     %size    @nochar(Chek)+@noline(Chek);
  567.     var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
  568.     dispoff(!DEBUG);
  569.     delfile(TEMP2|{doradir}|@l|{.tmp});
  570.     setcdir(CDIR);
  571.     command({txl -dir }|LOG2|{datalib\}|{ }|TEMP2|{doradir}|@l|{.tmp});
  572.     dispoff({No});
  573.     %FBdir @read(TEMP2|{doradir}|@l|{.tmp});
  574.     case    ( @filechk(TEMP2|{_fbchek.tmp}),
  575.         {Yes},
  576.         {delfile(TEMP2|{_fbchek.tmp})}
  577.         );
  578.     loop    ({    n:=n+1;
  579.         case    (n=15||n=25||n=35||n=50||n=70,
  580.             {Yes},{footnote({*マークの処理中です[}|@nochar(y)|
  581.             {byte]処理しました})
  582.             });
  583.         %a    @getline(Chek,n,1);
  584.         case    (a={},    
  585.             {Yes},{im({No})},,
  586.             {var MesNo[80];MesNo:=@head(@body(a,{#}),{ });
  587.             MesNo:=@im({#}|MesNo|{DLIB.DAT});
  588.             case    (@exist(FBdir,MesNo),
  589.                 {Yes},
  590.                 {InactMemo;
  591.                 case    (@getchar(a,1,2)={* }||
  592.                     @getchar(a,33,2)={* },
  593.                     {Yes},    /* 変更なし */
  594.                     {y:=y|a},
  595.                     {No},    /* 変更あり */
  596.                     {
  597.                     case    (@getchar(a,1,1)={#}||
  598.                         @getchar(a,2,1)={#}||
  599.                         @getchar(a,31,3)={- #},
  600.                         {Yes},
  601.                         {
  602.                         case(@getchar(a,1,1)={#},
  603.                             {Yes},{y:=y|{* }|a},
  604.                             {No},
  605.                             {
  606.                             case(@getchar(a,2,1)={#},
  607.                                 {Yes},{y:=y|{* }|a},
  608.                             {No},
  609.                             {
  610.                             %c @head(a,{ #});
  611.                             y:=y|c|{* }|
  612.                                 @getchar(a,33)}
  613.                             );
  614.                              });
  615.                         },
  616.                         {No},{y:=y|a}
  617.                         );
  618.                     });
  619.                 },
  620.                 {No},
  621.                 {InactMemo;
  622.                 case    (@getchar(a,1,2)={* }||
  623.                     @getchar(a,33,2)={* },
  624.                     {Yes},    /* 変更あり */
  625.                     {
  626.                     case    (@getchar(a,1,2)={* },
  627.                         {Yes},{%b @getchar(a,3);y:=y|b},
  628.                         {No},{%c @head(a,{* });
  629.                             y:=y|c|@tail(a,{* })}
  630.                         );
  631.                     },
  632.                     {No},    /* 変更なし */
  633.                     {y:=y|a}
  634.                     );
  635.                 });im({Yes})
  636.             });
  637.         });
  638.     InactMemo;mclear(memono);
  639.     %LISTlib @LINECUT(y);
  640.     madd(memono,LISTlib);
  641.     mopen(memono,0,21,639,459,{w});
  642.     LOGFILE:=@subdir(logdir,NET|{dlib.lst});
  643.     };
  644. /* ファイルボード「*マークの追加処理」 */
  645. %DLLChek{
  646.     %Chek @memo(memono);
  647.     %size    @nochar(Chek)+@noline(Chek);
  648.     var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
  649.     %Dldir LOG2|{アクセスdat\downrate.dat};
  650.     %Dll @case(@filechk(Dldir),{Yes},{im(@read(Dldir))},,{im({})});
  651.     footnote({*マークの処理中です[対象データ=}|@nochar(Chek)|{byte]});
  652.     display({*マークの処理中です[対象データ=}|@nochar(Chek)|{byte]\n});
  653.     case(DEBUG,{Yes},{display({downrate.datは以下の通り\n}|Dll|{です\n})});
  654.     case    (@filechk(Dldir),
  655.         {Yes},
  656.         {
  657.         loop    ({    n:=n+1;
  658.             case    (n=50||n=100||n=150||n=200||n=250||
  659.                 n=300||n=350||n=400,
  660.                 {Yes},{footnote({*マークの処理中です[}
  661.                 |@nochar(y)|{byte]処理しました})
  662.                 });
  663.             %a    @getline(Chek,n,1);
  664.             case    (a={},    
  665.                 {Yes},{im({No})},,
  666.                 {var dllNo[80];
  667.                 case    (@getchar(a,1,1)={ },
  668.                     {Yes},{dllNo:=@getchar(a,8,12)},
  669.                     ,{dllNo:=@getchar(a,10,12)});
  670.                 case    (@exist(Dll,dllNo),
  671.                     {Yes},
  672.                     {InactMemo;
  673.                     case    (@getchar(a,1,2)={* },
  674.                         {Yes},    /* 変更なし */
  675.                         {y:=y|a},
  676.                         {No},    /* 変更あり */
  677.                         {y:=y|{* }|
  678.                         @getchar(a,2)}
  679.                         );
  680.                     },
  681.                     {No},
  682.                     {InactMemo;
  683.                     case    (@getchar(a,1,2)={* },
  684.                         {Yes},    /* 変更あり */
  685.                         {y:=y|@getchar(a,2)},
  686.                         {No},    /* 変更なし */
  687.                         {y:=y|a}
  688.                         );
  689.                     });im({Yes})
  690.                 });
  691.             });
  692.         InactMemo;mclear(memono);
  693.         case(DEBUG,{Yes},{display(y)});
  694.         madd(memono,y);
  695.         mopen(memono,0,21,639,459,{w});updLOG(memono);
  696.         },,{footnote({ダウンロード実績が無いのでファイル}|
  697.             {チェック出来ません});wait(2)}
  698.         );
  699.     };
  700. /* *.LZHファイルの解凍処理 */
  701. %Extract1{
  702.     PickFile;
  703.     footnote({圧縮形式ファイルの解凍を行います});
  704.     case    (@tail(file1,{.})={LZH},
  705.         {No},
  706.         {
  707.         footnote({圧縮ファイルでないので解凍できません});
  708.         wait(1);
  709.         },
  710.         {Yes},
  711.         {
  712.         %file @head(file1,{.});
  713.         %cdir    @getcdir;
  714.         setcdir(logdir);
  715.         SNDMSG({erande.snd});
  716.         footnote({解凍先のディレクトリに移動してキャンセルして下さい});
  717.         filesel;
  718.         footnote({圧縮ファイルを解凍しています});
  719.         InactMemo;
  720.         %cdir1    @getcdir;
  721.         %cdir2    @dir2(cdir1);
  722.         setcdir(cdir);
  723.         dispoff(!DEBUG);
  724.         command({LHA X -m1 }|file|{ }|cdir2);
  725.         chkdirf(cdir1);
  726.         setcdir(cdir);
  727.         });
  728.     im({Yes});
  729.     };
  730.  
  731. %dirname{
  732.     PickFile;
  733.     %lineh    @head(line1,{ });
  734.     %dis @head(@getchar(lineh,1,14),{.});
  735.     %nck @case(@body(lineh,{\}),{},
  736.         {im(@head(@getchar(line1,34),{\n}))},,
  737.         {im(@head(@body(line1,{<DIR>  }),{\n}))});
  738.     %fct @case(nck,{},{im({設定})},,{im({変更})});
  739.     footnote({ }|dis|{ の名前を}|fct|{します});
  740.     loop    ({
  741.         SNDMSG({nyuryo_f.snd});
  742.         %a @plane(
  743.             {c識別子及び名前を入力してください\nc\n}|
  744.             {t  識別子  /xxxxxxxxxxxxxx\n}|
  745.             {t  名前    /xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}|
  746.             {\nc※ここで設定したの情報を常に使いたい場合は、\n}|
  747.             {c  情報表示の設定を定義ファイルにして保存してください\n}|
  748.             {\nc\n}|
  749.             {s          / 設定 / 取消 },
  750.             dis,nck);
  751.         %dis    @head(@getline(a,1,1),{\n});
  752.         %ncx    @head(@getline(a,2,1),{\n});
  753.         %ok    @head(@getline(a,3,1),{\n});
  754.         case    (ok,
  755.             { 1},
  756.             {
  757.             case    (dis={},
  758.                 {No},
  759.                 {
  760.                 %tfl CDIR2|{DORATXL.SET};
  761.                 case    (@filechk(tfl),
  762.                     {No},
  763.                     {
  764.                     write(tfl,
  765.                         {&情報表示 定義ファイルです}|CRLF);
  766.                     });
  767.                 %rtl @read(tfl);
  768.                 case    (nck,{},
  769.                     {write(tfl,{!}|dis|{=}|ncx|CRLF)},,
  770.                     {
  771.                     case    (ncx<>nck,
  772.                         {Yes},
  773.                         {
  774.                         dispoff(!DEBUG);
  775.                         command({copy }|tfl|{ }|
  776.                             CDIR2|{DORATXL.BAK});
  777.                         dispoff({No});
  778.                         delfile(tfl);
  779.                         write(tfl,
  780.                         @replace(rtl,
  781.                             {!}|dis|{=}|nck|CRLF,
  782.                             {!}|dis|{=}|ncx|CRLF))
  783.                         })
  784.                     });
  785.                 INFO:={Def};
  786.                 chkdirf(logdir);
  787.                 chkdirf(setdir);
  788.                 });
  789.             im({No});
  790.             },
  791.             { 2},{im({No})},
  792.             ,{im({Yes})}
  793.             );
  794.         });
  795.     im({Yes});
  796.     };
  797.  
  798. /*    TXF -dirの設定変更    */
  799. %sortcag{
  800.     var     Info    [2];
  801.     var     Dive    [2];
  802.     var     Dord    [2];
  803.     var     Ford    [2];
  804.  
  805.     %sitst    {
  806.         case(STYPE,
  807.             {x},{im({ 特殊 })},{n},{im({ファイル名})},
  808.             {e},{im({拡張子})},{s},{im({サイズ})},
  809.             {d},{im({ 日付 })},{u},{im({非ソート })},
  810.             ,{im({ 特殊 })});
  811.         };
  812.     Info:=    @case(INFO,{Yes},{im({ 1})},{Def},{im({ 2})},
  813.             {No},{im({ 3})},,{im({ 1})});
  814.     Dive:=    @YesNo(DIVE,{1});
  815.     Dord:=    @case(DORD,{+},{im({ 1})},{-},{im({ 2})},,{im({ 1})});
  816.     Ford:=    @case(FORD,{+},{im({ 1})},{-},{im({ 2})},,{im({ 2})});
  817.     loop    ({
  818.         SNDMSG({erande_f.snd});
  819.         footnote({ログ参照時の条件を選択してください});
  820.         %a @plane(
  821.             {cログ参照時の条件を選択してください\n}|
  822.             {r  情報表示            /する/定義ファイル/しない\n}|
  823.             {r  ディレクトリ再帰検索     /する/しない\n}|
  824.             {c  ソート方法    現在 [}|@sitst|{]\n}|
  825.             {s               / 特殊 /ファイル名/拡張子}|
  826.                 {/サイズ/ 日付 /非ソート \n}|
  827.             {r  ソート順序(ディレクトリ) /昇順/降順\n}|
  828.             {r  ソート順序(ファイル)    /昇順/降順\n}|
  829.             {c  サイズソートの際のソート順序(ディレクトリ)及び、\n}|
  830.             {c    非ソートの際のソート順序の設定は意味を持ちません\n}|
  831.             {s                      / 設定 / 取消 },
  832.             Info,Dive,Dord,Ford);
  833.         Info:=    @head(@getline(a,1,1),{\n});
  834.         Dive:=    @head(@getline(a,2,1),{\n});
  835.         %sel1    @head(@getline(a,3,1),{\n});
  836.         Dord:=    @head(@getline(a,4,1),{\n});
  837.         Ford:=    @head(@getline(a,5,1),{\n});
  838.         %ok    @head(@getline(a,6,1),{\n});
  839.         case    (sel1,
  840.             { 1},{STYPE:={x};im({Yes})},
  841.             { 2},{STYPE:={n};im({Yes})},
  842.             { 3},{STYPE:={e};im({Yes})},
  843.             { 4},{STYPE:={s};im({Yes})},
  844.             { 5},{STYPE:={d};im({Yes})},
  845.             { 6},{STYPE:={u};im({Yes})});
  846.         case    (ok,
  847.             { 1},
  848.             {
  849.             INFO:=    @case    (Info,
  850.                     { 1},{im({Yes})},
  851.                     { 2},
  852.                     {
  853.                     %tfl CDIR2|{DORATXL.SET};                            case    (@filechk(tfl),
  854.                         {No},
  855.                         {
  856.                         write(tfl,
  857.                         {&情報表示 定義ファイルです}|CRLF);
  858.                         });
  859.                     im({Def})
  860.                     },
  861.                     { 3},{im({No})},
  862.                     ,{im({Yes})}
  863.                     );
  864.             DIVE:=    @case    (Dive,
  865.                     { 1},{im({Yes})},{ 2},{im({No})},
  866.                     ,{im({Yes})});
  867.             DORD:=    @case    (Dord,
  868.                     { 1},{im({+})},{ 2},{im({-})},
  869.                     ,{im({+})});
  870.             FORD:=    @case    (Ford,
  871.                     { 1},{im({+})},{ 2},{im({-})},
  872.                     ,{im({-})});
  873.             chkdirf({all});
  874.             im({No});
  875.             },
  876.             { 2},{im({No})},
  877.             ,{im(sel1!=0)}
  878.             );
  879.         });
  880.     im({Yes});
  881.     };
  882. /* ディレクトリ表示と選択処理 */
  883. %Viewlog1{
  884.     %TREE    {
  885.         var    a    [6];
  886.         loop    ({
  887.             SNDMSG({erande_f.snd});
  888.             footnote({    戻る            }|
  889.                  { 木  森  草 草々    }|
  890.                  {        },{b});
  891.             waitx();
  892.             a:=@case(@xtype,
  893.                 102,{im({cancel})},    202,{im({cancel})},
  894.                 106,{ViewTREE(memono,{2})},
  895.                 206,{ViewTREE(memono,{2})},
  896.                 107,{ViewTRE2(memono,logdir,{2})},
  897.                 207,{ViewTRE2(memono,logdir,{2})},
  898.                 108,{ViewTREE(memono,{1})},
  899.                 208,{ViewTREE(memono,{1})},
  900.                 109,{ViewTRE2(memono,logdir,{1})},
  901.                 209,{ViewTRE2(memono,logdir,{1})},
  902.                 ,{im({Yes})}
  903.                 );
  904.             });
  905.         im(a={cancel}||a={Yes});
  906.         };
  907.     loop    ({
  908.         InactMemo;
  909.         case(@mlast>=memono,{Yes},{mclear(memono)});
  910.         case    (@filechk(TEMP2|{doradir}|@l|{.tmp}),
  911.             {No},{txldir(level)}
  912.             );
  913.         madd(memono,@read(TEMP2|{doradir}|@l|{.tmp}));
  914.         mopen(memono,0,21,639,459,{r});SNDMSG({erande_f.snd});
  915.         footnote({EXIT戻る表示BkLg    }|
  916.              {改名複写解凍TREE}|
  917.              {名前SORT},{b});
  918.         waitx();
  919.         case    (@xtype,
  920.             memono,Select1,
  921.             101,{Btitle:={};FLG:={Return};im({No})},
  922.             201,{Btitle:={};FLG:={Return};im({No})},
  923.             102,{im({No})},    202,{im({No})},
  924.             103,Select1,    203,Select1,
  925.             104,BackLog1,    204,BackLog1,
  926.             106,Rename1,    206,Rename1,
  927.             107,Copy1,    207,Copy1,
  928.             108,Extract1,    208,Extract1,
  929.             109,TREE,    209,TREE,
  930.             110,dirname,    210,dirname,
  931.             111,sortcag,    211,sortcag,
  932.             ,{im({Yes})}
  933.             );
  934.         });
  935.     };
  936. /*    バックログの表示処理    */
  937. %BackLog1{
  938.     footnote({バックログデータ取り込み中    しばらくお待ちください});
  939.     LOGFILE:=TEMP2|{BACKLOG.TMP};
  940.     delfile(LOGFILE);
  941.     writelog(LOGFILE);
  942.     %m1    memono;
  943.     InactMemo;
  944.     case(@mlast>=m1,{Yes},{mclear(m1)});
  945.     sel1;
  946.     };
  947. %sel1    {
  948.     %TREE    {
  949.         var    a    [6];
  950.         loop    ({
  951.             SNDMSG({erande_f.snd});
  952.             footnote({    戻る            }|
  953.                  { 木      草         }|
  954.                  {        },{b});
  955.             waitx();
  956.             a:=@case(@xtype,
  957.                 102,{im({cancel})},
  958.                 202,{im({cancel})},
  959.                 106,{ViewTRE2(m1,LOGFILE,{2})},
  960.                 206,{ViewTRE2(m1,LOGFILE,{2})},
  961.                 108,{ViewTRE2(m1,LOGFILE,{1})},
  962.                 208,{ViewTRE2(m1,LOGFILE,{1})},
  963.                 ,{im({Yes})}
  964.                 );
  965.             });
  966.         im(a={cancel}||a={Yes});
  967.         };
  968.         %UPDATE    {
  969.         var    a    [6];
  970.         loop    ({
  971.             SNDMSG({erande_f.snd});
  972.             footnote({    戻る            }|
  973.                  {削除更新            }|
  974.                  {        },{b});
  975.             waitx();
  976.             a:=@case(@xtype,
  977.                 102,{im({cancel})},    202,{im({cancel})},
  978.                 106,delLOG,    206,delLOG,
  979.                 107,{updLOG(m1)},207,{updLOG(m1)},
  980.                 ,{im({Yes})}
  981.                 );
  982.             });
  983.         im(a={cancel}||a={Yes});
  984.         };
  985.         %EXTEND    {
  986.         var    a    [6];
  987.         loop    ({
  988.             SNDMSG({erande_f.snd});
  989.             footnote({    戻る        ESC }|
  990.                  {解石PROF98罫    }|
  991.                  {        },{b});
  992.             waitx();
  993.             a:=@case(@xtype,
  994.                 102,{im({cancel})},202,{im({cancel})},
  995.                 105,{ESC},205,{ESC},
  996.                 106,ISH,    206,ISH,
  997.                 107,{PROFILE(m1)},207,{PROFILE(m1)},
  998.                 108,{JIS98(m1)},208,{JIS98(m1)},
  999.                 ,{im({Yes})}
  1000.                 );
  1001.             });
  1002.         im(a={cancel}||a={Yes});
  1003.         };
  1004.     mread(LOGFILE,m1);
  1005.     mopen(m1,0,21,639,459,{w});
  1006.     case    (ESCon={No},{No},{ESC});
  1007.     loop    ({
  1008.         SNDMSG({erande_f.snd});
  1009.         footnote({EXIT戻る            }|
  1010.              {コメント        TREE    }|
  1011.              {変更拡張},{b});
  1012.         waitx();
  1013.         case    (@xtype,
  1014.             101,{InactMemo;Btitle:={};FLG:={Return};im({No})},
  1015.             201,{InactMemo;Btitle:={};FLG:={Return};im({No})},
  1016.             102,{InactMemo;im({No})},202,{InactMemo;im({No})},
  1017.             106,{COMMENT(m1)},    206,{COMMENT(m1)},
  1018.             109,{TREE},        209,{TREE},
  1019.             111,{UPDATE},        211,{UPDATE},
  1020.             112,{EXTEND},        212,{EXTEND},
  1021.             m1,{COMMENT(m1)},
  1022.             ,{im({Yes})}
  1023.             );
  1024.         });
  1025.     };
  1026. /* 1ログファイルの表示処理 */
  1027. %Select1{
  1028.     PickFile;
  1029.     case(DEBUG,{Yes},{display({Select1(}|logdir|{)\n});
  1030.         display({line1=}|line1|{\n})});
  1031.     case    (@body(line1,{<},{>})={DIR},
  1032.         {Yes},
  1033.         {
  1034.         case    (@head(line1,{ }),
  1035.             {MAILLIST},{Btitle:={MaL}},
  1036.             {FNEWS},{Btitle:={NeW}});
  1037.         current:=current+1;
  1038.         ViewLOG(@subdir(logdir,@head(line1,{ })),memono,level+1);
  1039.         current:=current-1;
  1040.         },
  1041.         {No},
  1042.         {
  1043.         case    (@tail(@head(line1,{ }),{.}),
  1044.             {LZH},{ViewLZH(@subdir(logdir,@head(line1,{ })),
  1045.                         memono)},
  1046.             {NAP},{ViewNAP(@subdir(logdir,@head(line1,{ })),
  1047.                         memono)},
  1048.             {NPB},{ViewNAP(@subdir(logdir,@head(line1,{ })),
  1049.                         memono)},
  1050.             ,
  1051.             {
  1052.             LOGFILE:=@subdir(logdir, @head(line1,{ }));
  1053.             %m1    memono;
  1054.             InactMemo;
  1055.             case(@mlast>=m1,{Yes},{mclear(m1)});
  1056.             case    (@filechk(LOGFILE),
  1057.                 {Yes},{sel1},
  1058.                 {No},{im({Yes})}
  1059.                 );
  1060.             });
  1061.         });
  1062.     case(FLG,{Return},{im({No})},,{im({Yes})})
  1063.     };
  1064.  
  1065. /* タイトルモードでのボードディレクトリ表示と選択処理 */
  1066. %Viewlog2{
  1067.     %m1    memono;
  1068.     loop    ({
  1069.         InactMemo;
  1070.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1071.             %LISTbod @LINECUT(@read(LOG2|{board\title.txt}));
  1072.             madd(m1,LISTbod);
  1073.             mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
  1074.         case    (ESCon={No},{No},{ESC});
  1075.         footnote({EXIT戻る表示ESC *CHK},{b});
  1076.         waitx();
  1077.         case    (@xtype,m1,Select2,
  1078.             101,{Btitle:={};FLG:={Return};im({No})},
  1079.             201,{Btitle:={};FLG:={Return};im({No})},
  1080.             102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
  1081.             103,Select2,
  1082.             203,Select2,
  1083.             104,{ESC;updLOG(m1);im({Yes})},
  1084.             204,{ESC;updLOG(m1);im({Yes})},
  1085.             105,{BChek;updLOG(m1);im({Yes})},
  1086.             205,{BChek;updLOG(m1);im({Yes})},
  1087.             ,{im({Yes})}
  1088.             )
  1089.         })
  1090.     };
  1091. /* タイトルモードでのファイルボードディレクトリ表示と選択処理 */
  1092. %Viewlog3{
  1093.     LOGFILE:=@subdir(logdir,NET|{dlib.lst});
  1094.     %m1    memono;
  1095.     loop    ({
  1096.         InactMemo;
  1097.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1098.         %LISTlib @LINECUT(@read(LOG2|{datalib\}|NET|{dlib.lst}));
  1099.         madd(m1,LISTlib);
  1100.         mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
  1101.         case    (ESCon={No},{No},{ESC});
  1102.         footnote({EXIT戻る表示ESC *CHK},{b});
  1103.         waitx();
  1104.         case    (@xtype,m1,Select3,
  1105.             101,{Btitle:={};FLG:={Return};im({No})},
  1106.             201,{Btitle:={};FLG:={Return};im({No})},
  1107.             102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
  1108.             103,Select3,        203,Select3,
  1109.             104,{ESC;updLOG(m1);im({Yes})},
  1110.             204,{ESC;updLOG(m1);im({Yes})},
  1111.             105,{FBChek;updLOG(m1);im({Yes})},
  1112.             205,{FBChek;updLOG(m1);im({Yes})},
  1113.             ,{im({Yes})}
  1114.             )
  1115.         })
  1116.     };
  1117. /* news表示と選択処理 */
  1118. %Viewlog4{
  1119.     %m1    memono;
  1120.     loop    ({
  1121.         InactMemo;
  1122.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1123.             madd(m1,@read(TEMP2|{doradir}|@l|{.tmp}));
  1124.             mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
  1125.         footnote({EXIT戻る表示改名 森  木 },{b});
  1126.         waitx();
  1127.         case    (@xtype,memono,Select1,
  1128.             101,{Btitle:={};FLG:={Return};im({No})},
  1129.             201,{Btitle:={};FLG:={Return};im({No})},
  1130.             102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
  1131.             103,Select1,    203,Select1,
  1132.             104,Rename1,    204,Rename1,
  1133.             105,{ViewTRE2(memono,logdir,{2})},
  1134.             205,{ViewTRE2(memono,logdir,{2})},
  1135.             106,{ViewTREE(memono,{2})},
  1136.             206,{ViewTREE(memono,{2})},
  1137.             ,{im({Yes})}
  1138.             )
  1139.         })
  1140.     };
  1141. /************************************************************************
  1142. *    圧縮ファイルの表示処理                        *
  1143. *************************************************************************/
  1144. %ViewLZH{
  1145.     [lzhfile,memono]
  1146.     var    lv[2];lv:={L };
  1147.     %lvdir    {
  1148.         dispoff(!DEBUG);
  1149.         %cdir1    @getcdir;
  1150.         setcdir(CDIR);
  1151.         command({LHA }|lv|lzhfile|{ > }|TEMP2|{_lzhdir.tmp});
  1152.         setcdir(cdir1);
  1153.         dispoff({No});
  1154.         };
  1155.     loop    ({
  1156.         lvdir;
  1157.         %lineno @noline(@read(TEMP2|{_lzhdir.tmp}));
  1158.         InactMemo;
  1159.         case    (lineno>8,
  1160.             {Yes},viewlzh1,
  1161.             {No},{display(lzhfile|{ はありません\n});im({No})}
  1162.             );
  1163.         });
  1164.     InactMemo;
  1165.     };
  1166.  
  1167. /* 圧縮ファイル内容の表示と選択処理 */
  1168. %viewlzh1{
  1169.     %TREE    {
  1170.         var    a    [6];
  1171.         loop    ({
  1172.             SNDMSG({erande_f.snd});
  1173.             footnote({    戻る            }|
  1174.                  { 木  森             }|
  1175.                  {        },{b});
  1176.             waitx();
  1177.             a:=@case(@xtype,
  1178.                 102,{im({cancel})},    202,{im({cancel})},
  1179.                 106,TreeLZH,    206,TreeLZH,
  1180.                 107,WoodsLZH,    207,WoodsLZH,
  1181.                 ,{im({Yes})}
  1182.                 );
  1183.             });
  1184.         im(a={cancel}||a={Yes});
  1185.         };
  1186.  
  1187.     %clv {case(lv,{L },{lv:={V }},{V },{lv:={L }})};
  1188.     %flv  @case(lv,{L },{im({階層})},{V },{im({標準})});
  1189.     
  1190.     case(@mlast>=memono,{Yes},{mclear(memono)});
  1191.     madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
  1192.     mopen(memono,0,21,639,459,{r});
  1193.     SNDMSG({erande_f.snd});
  1194.     footnote({EXIT戻る    }|flv|
  1195.          {表示改名    解凍TREE    }|
  1196.          {        },{b});
  1197.     waitx();
  1198.     case    (@xtype,
  1199.         101,{FLG:={Return};im({No})},
  1200.         201,{FLG:={Return};im({No})},
  1201.         102,{im({No})},    202,{im({No})},
  1202.         104,{clv},    204,{clv},
  1203.         105,select1,    205,select1,
  1204.         106,rename1,    206,rename1,
  1205.         108,copy1,    208,copy1,
  1206.         109,TREE,    209,TREE,
  1207.         memono,select1,
  1208.         ,{im({Yes})}
  1209.         );
  1210.     };
  1211.  
  1212. /* 圧縮1ログファイルの表示処理 */
  1213. %select1{
  1214.     PickFile;
  1215.     %lzhfile1 @getchar(line1,3,12);
  1216.     dispoff(!DEBUG);
  1217.     %cdir1    @getcdir;
  1218.     setcdir(CDIR);
  1219.     command({del }|TEMP2|lzhfile1);
  1220.     command({LHA E }|lzhfile|{ }|TEMP2|{ }|lzhfile1);
  1221.     setcdir(cdir1);
  1222.     dispoff({No});
  1223.     case    (@body(lzhfile1,{.}),
  1224.         {NAP},{ViewNAP(TEMP2|lzhfile1,memono)},
  1225.         {NPB},{ViewNAP(TEMP2|lzhfile1,memono)},
  1226.         ,
  1227.         {
  1228.         %m1    memono;
  1229.         InactMemo;
  1230.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1231.         LOGFILE:=TEMP2|lzhfile1;
  1232.         mread(TEMP2|lzhfile1,m1);
  1233.         mopen(m1,0,21,639,459,{w});
  1234.         loop    ({
  1235.             footnote({EXIT戻る削除更新コメント}|
  1236.                 {解石ESC  木  草 98罫},{b});
  1237.             waitx();
  1238.             case    (@xtype,
  1239.                 101,{InactMemo;Btitle:={};
  1240.                         FLG:={Return};im({No})},
  1241.                 201,{InactMemo;Btitle:={};
  1242.                         FLG:={Return};im({No})},
  1243.                 102,{InactMemo;im({No})},
  1244.                 202,{InactMemo;im({No})},
  1245.                 103,delLZH,        203,delLZH,
  1246.                 104,updLZH,        204,updLZH,
  1247.                 105,{COMMENT(m1)},    205,{COMMENT(m1)},
  1248.                 106,ISH,        206,ISH,    
  1249.                 107,{ESC},    207,{ESC},
  1250.                 108,{ViewTRE2(m1,LOGFILE,{2})},
  1251.                 208,{ViewTRE2(m1,LOGFILE,{2})},
  1252.                 109,{ViewTRE2(m1,LOGFILE,{1})},
  1253.                 209,{ViewTRE2(m1,LOGFILE,{1})},
  1254.                 110,{JIS98(m1)},    210,{JIS98(m1)},
  1255.                 m1,{COMMENT(m1)},,{im({Yes})});
  1256.             });
  1257.         footnote({});
  1258.         delfile(TEMP2|lzhfile1);
  1259.         case(FLG,{Return},{im({No})},,{im({Yes})});
  1260.         });
  1261.     };
  1262.  
  1263. /* 圧縮ログファイル名の変更処理 */
  1264. %rename1{
  1265.     PickFile;
  1266.     footnote({ファイル名を変更します});
  1267.     %file    @case(lv,
  1268.         {L },{im(@tail(file1,{\}))},
  1269.         {V },{im(@replace(@head(line1,CRLF),{/},{\}))});
  1270.     %path    @body(file,,{\});
  1271.     %file1    @tail(file,{\});
  1272.     SNDMSG({nyuryo_f.snd});
  1273.     footnote({新しいファイル名を入力して下さい});
  1274.     %file2    @input({新しいファイル名を入力して下さい},,file1);
  1275.     footnote({ファイル名を変更します});
  1276.     case    (file2={}||file2=file1,
  1277.         {No},
  1278.         {
  1279.         setcdir(TEMP);
  1280.         dispoff(!DEBUG);
  1281.         %cdir1    @getcdir;
  1282.         setcdir(CDIR);
  1283.         case(lv,
  1284.             {L },
  1285.             {
  1286.             case    (@getchar(line1,1,2),{+ },
  1287.                 {
  1288.                 SNDMSG({okasi_f.snd});
  1289.                 footnote({ディレクトリ付きで格納されています});
  1290.                 wait(1);
  1291.                 footnote({});
  1292.                 },,
  1293.                 {
  1294.                 command({LHA E -x0 }|lzhfile|{ }|
  1295.                     TEMP2|{ }|file);
  1296.                 command({rename }|TEMP2|file|{ }|file2);
  1297.                 command({LHA D }|lzhfile|{ }|file);
  1298.                 command({LHA A -x1 }|lzhfile|{ }|
  1299.                     TEMP2|{ }|file2);
  1300.                 delfile(TEMP2|file2);
  1301.                 chkdirf(@body(lzhfile,,{\}));
  1302.                 })
  1303.             },
  1304.             {V },
  1305.             {
  1306.             command({LHA X -m1 }|lzhfile|{ }|TEMP2|{ }|file);
  1307.             command({rename }|TEMP2|file|{ }|file2);
  1308.             command({LHA D }|lzhfile|{ }|file);
  1309.             command({LHA A -x1 }|lzhfile|{ }|
  1310.                 TEMP2|{ }|path|{\}|file2);
  1311.             delfile(TEMP2|path|{\}|file2);
  1312.             rmdir(TEMP2|path);
  1313.             chkdirf(@body(lzhfile,,{\}));
  1314.             });
  1315.         setcdir(cdir1);
  1316.         dispoff({No});
  1317.         });
  1318.     im({Yes});
  1319.     };
  1320.  
  1321. /* 圧縮ログファイルの解凍処理 */
  1322. %copy1    {
  1323.     PickFile;
  1324.     footnote({ファイルを解凍します});
  1325.     var file [64];
  1326.     file:=@head(@getchar(line1,3,12),{ });SNDMSG({erande_f.snd});
  1327.     footnote({解凍先のファイルを指定して下さい});
  1328.     %file2    @filesel;footnote({ファイルを解凍します});
  1329.     case(file2<>{},{Yes},
  1330.         {
  1331.         dispoff(!DEBUG);command({LHA E }|lzhfile|{ }|file);
  1332.         case(file<>file2 && file2<>{*.*} && file2<>{},
  1333.             {Yes},{command({ren }|file|{ }|file2)});
  1334.         dispoff({No});
  1335.         });
  1336.     im({Yes});
  1337.     };
  1338.  
  1339. /* 圧縮ファイル内容の表示と選択処理 */
  1340. %viewlzh1{
  1341.     case(@mlast>=memono,{Yes},{mclear(memono)});
  1342.     madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
  1343.     mopen(memono,0,21,639,459,{r});
  1344.     SNDMSG({erande_f.snd});
  1345.     footnote({EXIT戻る表示改名解凍 森  木 },{b});
  1346.     waitx();
  1347.     case    (@xtype,
  1348.         101,{Btitle:={};FLG:={Return};im({No})},
  1349.         201,{Btitle:={};FLG:={Return};im({No})},
  1350.         102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
  1351.         103,select1,    203,select1,
  1352.         104,rename1,    204,rename1,
  1353.         105,copy1,    205,copy1,
  1354.         106,WoodsLZH,    206,WoodsLZH,
  1355.         107,TreeLZH,    207,TreeLZH,
  1356.         memono,select1,
  1357.         ,{im({Yes})});
  1358.     };
  1359.  
  1360. /* 1ログファイルの表示処理(ボードの場合) */
  1361. %Select2{
  1362.     PickFile;
  1363.     %BDlogS{
  1364.         %m1    memono;
  1365.         InactMemo;
  1366.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1367.         mread(LOGFILE,m1);
  1368.         mopen(m1,0,21,639,459,{w});
  1369.         loop    ({
  1370.             footnote({EXIT戻る削除更新コメント解石}|
  1371.                 { 木  草 98罫PROF},{b});
  1372.             waitx();
  1373.             case(@xtype,
  1374.                 101,{Btitle:={};FLG:={Return};im({No})},
  1375.                 201,{Btitle:={};FLG:={Return};im({No})},
  1376.                 102,{im({No})},
  1377.                 202,{im({No})},
  1378.                 103,delLOG,    203,delLOG,
  1379.                 104,{updLOG(m1)},204,{updLOG(m1)},
  1380.                 105,{COMMENT(m1)},
  1381.                 205,{COMMENT(m1)},
  1382.                 106,ISH,    206,ISH,
  1383.                 107,{ViewTRE2(m1,LOGFILE,{2})},
  1384.                 207,{ViewTRE2(m1,LOGFILE,{2})},
  1385.                 108,{ViewTRE2(m1,LOGFILE,{1})},
  1386.                 208,{ViewTRE2(m1,LOGFILE,{1})},
  1387.                 109,{JIS98(m1)},209,{JIS98(m1)},                        110,{PROFILE(m1)},210,{PROFILE(m1)},
  1388.                 m1,{COMMENT(m1)},
  1389.                 ,{im({Yes})}
  1390.                 );
  1391.             });
  1392.         };
  1393.     var n[3]; n:=@head(@body(line1,{#}),{ });
  1394.     LOGFILE:=@im(RTTL2|NET|{_}|DAY2|{.}|n);
  1395.     case    (@filechk(LOGFILE),
  1396.         {Yes},
  1397.         {BDlogS},
  1398.         {No},
  1399.         {
  1400. footnote(LOGFILE);wait(3);
  1401.     LOGFILE:=@im(RTTL2|NET|{_}|DAY3|{.}|n);
  1402.         case    (@filechk(LOGFILE),
  1403.             {Yes},
  1404.             {BDlogS},
  1405.             {No},
  1406.             {
  1407. footnote(LOGFILE);wait(3);
  1408.     LOGFILE:=@im(RTTL2|NET|{_}|DAY4|{.}|n);
  1409.             case    (@filechk(LOGFILE),
  1410.                 {Yes},
  1411.                 {BDlogS},
  1412.                 {No},{
  1413. footnote({今月~先々月分調査結果>このボードのログは有りません});wait(3);
  1414.                 footnote({RTTLC出力用ディレクトリの}|
  1415.                 {設定が正しいかをチェックして下さい});wait(2);
  1416.                 sayMES(memono,@head(@body(line1,{#}),{ }))
  1417.                 });
  1418.             });
  1419.         });
  1420.     case(FLG,{Return},{im({No})},,{im({Yes})})
  1421.     };
  1422.  
  1423. %Select3{
  1424.     PickFile;
  1425.     %FBDlogS{
  1426.         %m1    memono;
  1427.         InactMemo;
  1428.         case(@mlast>=m1,{Yes},{mclear(m1)});
  1429.         mread(LOGFILE,m1);
  1430.         mopen(m1,0,21,639,459,{w});
  1431.         case    (ESCon={No},{No},{ESC});
  1432.         loop    ({
  1433.             footnote({EXIT戻る削除更新ダウンESC *CHK},{b});
  1434.             waitx();
  1435.             case(@xtype,
  1436.                 101,{Btitle:={};FLG:={Return};im({No})},
  1437.                 201,{Btitle:={};FLG:={Return};im({No})},
  1438.                 102,{im({No})},
  1439.                 202,{im({No})},
  1440.                 103,delLOG,    203,delLOG,
  1441.                 104,{updLOG(m1)},204,{updLOG(m1)},
  1442.                 105,{COMMENT(m1)},205,{COMMENT(m1)},
  1443.                 106,{ESC},206,{ESC},
  1444.                 107,{DLLChek;im({Yes})},
  1445.                 207,{DLLChek;im({Yes})},
  1446.                 m1,{COMMENT(m1)},
  1447.                 ,{im({Yes})}
  1448.                 );
  1449.             });
  1450.         };
  1451.     var MesNo[4];MesNo:=@head(@body(line1,{#}),{ });
  1452.     LOGFILE:=@im(LOG2|{datalib\#}|MesNo|{dlib.dat});
  1453.     case    (@filechk(LOGFILE),
  1454.         {Yes},
  1455.         {FBDlogS},
  1456.         {No},
  1457.         {
  1458.         case    (@exist(MesNo,{>})||@exist(MesNo,{<}),
  1459.             {Yes},{footnote({ファイルボード行を指定してください});
  1460.             wait(3)},
  1461.             {No},
  1462.             {footnote(LOGFILE|{がありません});
  1463.             SNDMSG({erande_f.snd});
  1464.             select    ({ファイルボード#}|MesNo|{のデータ登録状況}|
  1465.                 {ダウンロード予約を},
  1466.                 Wtime4,,
  1467.                 {  す  る  },
  1468.                 {write(UP2|{doradown.ctl},
  1469.                     {filbord=}|MesNo|{;\n})},
  1470.                 {  しない  },
  1471.                 );
  1472.             });
  1473.         });
  1474.     case(FLG,{Return},{im({No})},,{im({Yes})});
  1475.     };
  1476. /* 非圧縮ログファイルの削除処理 */
  1477. %delLOG    {
  1478.     footnote({ログファイルを削除します});
  1479.     SNDMSG({kaknin_f.snd});
  1480.     select    ({現在表示しているログファイルを削除します},
  1481.         Wtime4,{im({Yes})},
  1482.         {  削除する  },
  1483.         {
  1484.         InactMemo;
  1485.         delfile(LOGFILE);
  1486.         txldir(0);
  1487.         im({No})},
  1488.         { 削除しない },{im({Yes})}
  1489.         );
  1490.     };
  1491. /* 非圧縮ログファイルの更新処理 */
  1492. %updLOG    {[memono]
  1493.     footnote({ログファイルを更新します});
  1494.     SNDMSG({kaknin_f.snd});
  1495.     select    ({現在表示しているログファイルを更新しワす},
  1496.         Wtime4,{im({Yes})},
  1497.         {  更新する  },
  1498.         {
  1499.         InactMemo;delfile(LOGFILE);
  1500.         mwrite(LOGFILE,memono);
  1501.         chkdirf(logdir);
  1502.         im({No})},
  1503.         { 更新しない },{im({Yes})}
  1504.         );
  1505.     };
  1506. /* 圧縮モードのログファイルを削除する */
  1507. %delLZH    {
  1508.     footnote({ログファイルを削除します});
  1509.     SNDMSG({kaknin_f.snd});
  1510.     select({現在表示しているログファイルを削除します},
  1511.         Wtime4,{im({Yes})},
  1512.         {  削除する  },
  1513.         {
  1514.         InactMemo;
  1515.         dispoff(!DEBUG);
  1516.         command({LHA D }|lzhfile|{ }|lzhfile1);
  1517.         dispoff({No});
  1518.         im({No})},
  1519.         { 削除しない },{im({Yes})}
  1520.         );
  1521.     };
  1522.  
  1523. /* 圧縮モードのログファイルを更新する */
  1524. %updLZH    {
  1525.     footnote({ログファイルを更新します});SNDMSG({kaknin_f.snd});
  1526.     select({現在表示しているログファイルを更新します},
  1527.         Wtime4,{im({Yes})},
  1528.         {  更新する  },
  1529.         {
  1530.         InactMemo;
  1531.         dispoff(!DEBUG);
  1532.         delfile(lzhfile1);
  1533.         mwrite(lzhfile1,memono);
  1534.         command({LHA U }|lzhfile|{ }|lzhfile1);
  1535.         command({LHA }|lzhfile|{>}|TEMP2|{_lzhdir.tmp});
  1536.         dispoff({No});
  1537.         im({No})
  1538.         },
  1539.         { 更新しない },{im({Yes})}
  1540.         );
  1541.     };
  1542. /************************************************************************
  1543. *    コメントツリー表示処理                        *
  1544. *************************************************************************/
  1545. /* 圧縮1ログファイルのコメントツリー(木)表示処理 */
  1546. %TreeLZH{
  1547.     PickFile;
  1548.     %lzhfile1 @getchar(line1,3,12);
  1549.     dispoff(!DEBUG);
  1550.     %cdir1    @getcdir;
  1551.     setcdir(CDIR);
  1552.     command({del }|TEMP2|lzhfile1);
  1553.     command({LHA E }|lzhfile|{ }|TEMP2|{ }|lzhfile1);
  1554.     setcdir(cdir1);
  1555.     dispoff({No});
  1556.     ViewTRE2(memono,TEMP2|lzhfile1,{2});
  1557.     case(FLG,{Return},{im({No})},,{im({Yes})});
  1558.     };
  1559.  
  1560. /* 圧縮複数ログファイルのコメントツリー(森)表示処理 */
  1561. %WoodsLZH{
  1562.     ViewTRE2(memono,lzhfile,{2});
  1563.     case(FLG,{Return},{im({No})},,{im({Yes})});
  1564.     };
  1565. %ViewTREE{
  1566.     [memono,flg]
  1567.     PickFile;ViewTRE2(memono,file1,flg);
  1568.     };
  1569. %ViewTRE2{
  1570.     [memono,file,flg]
  1571.     footnote({コメントツリー作成中  中断:[ESC]  }|file);
  1572.     %cdir    @getcdir;
  1573.     setcdir(CDIR);
  1574.     case    (DEBUG,
  1575.         {Yes},
  1576.         {
  1577.         case    (@tail(file,{.})={LZH},
  1578.             {Yes},{command({rctd -T}|flg|{o }|TEMP|{ }|file)},
  1579.             {No},{command({rct -T}|flg|{o }|TEMP|{ }|file)}
  1580.             );
  1581.         },
  1582.         {No},
  1583.         {
  1584.         dispoff({Yes});
  1585.         case    (@tail(file,{.})={LZH},
  1586.             {Yes},{command({rctd -DT}|flg|{o }|TEMP|{ }|file)},
  1587.             {No},{command({rct -DT}|flg|{o }|TEMP|{ }|file)}
  1588.             );
  1589.         dispoff({No});
  1590.         });
  1591.     setcdir(cdir);
  1592.     InactMemo;
  1593.     case    (@filechk(TEMP2|{comtree0.tmp}),
  1594.         {Yes},
  1595.         {
  1596.         madd(memono+1,{});
  1597.         mclear(memono+1);
  1598.         mread(TEMP2|{comtree0.tmp},memono+1);
  1599.         Viewtre1;
  1600.         },
  1601.         {No},
  1602.         {
  1603.         footnote({発言がありません});
  1604.         wait(1);
  1605.         });
  1606.     };
  1607.  
  1608. /*    コメントツリーからの発言指定(初回のみ)    */
  1609. %Viewtre1{
  1610.     mopen(memono+1,0,181,639,459,{r});
  1611.     loop    ({
  1612.         case    (Btitle,
  1613.             {NeW},    {
  1614.             footnote({EXIT戻る表示},{b});
  1615.             waitx();
  1616.             case    (@xtype,
  1617.                 101,{Btitle:={};FLG:={Return};im({No})},
  1618.                 201,{Btitle:={};FLG:={Return};im({No})},
  1619.                 102,{im({No})},    202,{im({No})},
  1620.                 103,{viewtree},    203,{viewtree},
  1621.                 memono+1,{viewtree},
  1622.                 ,{im({Yes})}
  1623.                 );
  1624.             },,
  1625.             {
  1626.             footnote({EXIT戻る表示         木  草 },{b});
  1627.             waitx();
  1628.             case    (@xtype,
  1629.                 101,{Btitle:={};FLG:={Return};im({No})},
  1630.                 201,{Btitle:={};FLG:={Return};im({No})},
  1631.                 102,{im({No})},    202,{im({No})},
  1632.                 103,{viewtree},    203,{viewtree},
  1633.                 106,{retree(2,memono+1)},
  1634.                 206,{retree(2,memono+1)},
  1635.                 107,{retree(1,memono+1)},
  1636.                 207,{retree(1,memono+1)},
  1637.                 memono+1,{viewtree},
  1638.                 ,{im({Yes})}
  1639.                 );
  1640.             });
  1641.         });
  1642.     DeleteMemo(memono+1);
  1643.     dispoff(!DEBUG);
  1644.     %cdir    @getcdir;
  1645.     setcdir(CDIR);
  1646.     command({rctd -DelLzhFile});
  1647.     setcdir(cdir);
  1648.     dispoff({No});
  1649.     case(FLG,{Return},{im({No})},,{im({Yes})});
  1650.     };
  1651. %viewtree{
  1652.     var    lno1    [8];
  1653.     %tempfile    TEMP2|{comtxt.tmp};
  1654.     lno1:=    @xlinenum;
  1655.     case    (@mcheck==memono+1,
  1656.         {Yes},
  1657.         {
  1658.         loop    ({
  1659.             dispoff(!DEBUG);
  1660.             %cdir    @getcdir;
  1661.             setcdir(CDIR);
  1662.             delfile(tempfile);
  1663.             command({rct -lo }|TEMP|{ }|lno1);
  1664.             setcdir(cdir);
  1665.             dispoff({No});
  1666.             InactMemo;
  1667.             case(@mlast>=memono+2,{Yes},{mclear(memono+2)});
  1668.             madd(memono+2,{});
  1669.             mread(tempfile,memono+2);
  1670.             mopen(memono+2,0,21,639,359,{w});
  1671.             loop    ({
  1672.                 case    (@mcheck==0,
  1673.                     {Yes},
  1674.                     {mopen(memono+2,0,21,639,359,{w})}
  1675.                     );
  1676.                     case(Btitle,{NeW},
  1677.                     {vwtreNEW},,
  1678.                     {vwtreNML});
  1679.                 });
  1680.             case(FLG,{Select},{im({Yes})},,{im({No})});
  1681.             });
  1682.         });
  1683.     };
  1684. /*NEWS用VIEW*/
  1685. %vwtreNEW{
  1686.     footnote({EXIT戻る表示 前  次 選択},{b});
  1687.     waitx();
  1688.     case    (@xtype,
  1689.         101,{Btitle:={};FLG:={Return};im({No})},
  1690.         201,{Btitle:={};FLG:={Return};im({No})},
  1691.         102,{FLG:={Exit};im({No})},
  1692.         202,{FLG:={Exit};im({No})},
  1693.         103,{case(@mcheck==memono+1,
  1694.             {Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
  1695.             {No},{InactMemo;im({Yes})})},
  1696.         203,{case(@mcheck==memono+1,
  1697.             {Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
  1698.             {No},{InactMemo;im({Yes})})},
  1699.         104,{case(lno1>1,{Yes},{lno1:=lno1-1});
  1700.                     FLG:={Select};im({No})},
  1701.         204,{case(lno1>1,{Yes},{lno1:=lno1-1});
  1702.                     FLG:={Select};im({No})},
  1703.         105,{case(lno1<@nolmemo(memono+1)-1,
  1704.             {Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
  1705.         205,{case(lno1<@nolmemo(memono+1)-1,
  1706.             {Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
  1707.         memono+1,{lno1:=@xlinenum;FLG:={Select};im({No})},
  1708.         106,{COMMENT1(memono,@xlinenum)},
  1709.         206,{COMMENT1(memono,@xlinenum)},
  1710.         memono+2,{COMMENT1(memono,@xlinenum)},,{im({Yes})}
  1711.         );
  1712.     };
  1713. /*ノーマル用VIEW*/
  1714. %vwtreNML{
  1715.     %EXTEND    {
  1716.         var    a    [6];
  1717.         loop    ({
  1718.             SNDMSG({erande_f.snd});
  1719.             footnote({    戻る            }|
  1720.                  {解石PROF98罫        }|
  1721.                  {        },{b});
  1722.             waitx();
  1723.             a:=@case(@xtype,
  1724.                 102,{im({cancel})},    202,{im({cancel})},
  1725.                 106,{InactMemo;%LOGFILE tempfile;ISH;im({Yes});
  1726.                 },
  1727.                 206,{InactMemo;%LOGFILE tempfile;ISH;im({Yes});
  1728.                 },
  1729.                 107,{PROFILE(memono+2)},
  1730.                 207,{PROFILE(memono+2)},
  1731.                 108,{JIS98tre(memono+2)},
  1732.                 208,{JIS98tre(memono+2)},
  1733.                 ,{im({Yes})}
  1734.                 );
  1735.             });
  1736.         im(a={cancel}||a={Yes});
  1737.         };
  1738.     footnote({EXIT戻る表示 前  次 コメント 木  草 拡張},{b});
  1739.     waitx();
  1740.     case    (@xtype,
  1741.         101,{Btitle:={};FLG:={Return};im({No})},
  1742.         201,{Btitle:={};FLG:={Return};im({No})},
  1743.         102,{FLG:={Exit};im({No})},
  1744.         202,{FLG:={Exit};im({No})},
  1745.         103,{case(@mcheck==memono+1,
  1746.             {Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
  1747.             {No},{InactMemo;im({Yes})})},
  1748.         203,{case(@mcheck==memono+1,
  1749.             {Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
  1750.             {No},{InactMemo;im({Yes})})},
  1751.         104,{case(lno1>1,{Yes},{lno1:=lno1-1});
  1752.                     FLG:={Select};im({No})},
  1753.         204,{case(lno1>1,{Yes},{lno1:=lno1-1});
  1754.                     FLG:={Select};im({No})},
  1755.         105,{case(lno1<@nolmemo(memono+1)-1,
  1756.             {Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
  1757.         205,{case(lno1<@nolmemo(memono+1)-1,
  1758.             {Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
  1759.         106,{COMMENT1(memono,@xlinenum)},
  1760.         206,{COMMENT1(memono,@xlinenum)},
  1761.         memono+1,{lno1:=@xlinenum;FLG:={Select};im({No})},
  1762.         107,{retree(2,memono+1)},207,{retree(2,memono+1)},
  1763.         108,{retree(1,memono+1)},208,{retree(1,memono+1)},
  1764.         109,{EXTEND},    209,{EXTEND},
  1765.         memono+2,{COMMENT1(memono,@xlinenum)},,{im({Yes})}
  1766.         );
  1767.     };
  1768.  
  1769. /*    コメントツリーの再作成    */
  1770. %retree    {
  1771.     [flg,memono]
  1772.     var    article    [82];
  1773.     var    lineno    [5];
  1774.     lineno    :=@case    (@mcheck==memono,
  1775.             {Yes},
  1776.             {case(@xlinenum<1,{Yes},{im(1)},{No},{im(@xlinenum)})},
  1777.             {No},{im(1)}
  1778.             );
  1779.     article:=@getline(@memo(memono),lineno,1);
  1780.     article:=@tail(article,{┣});
  1781.     article:=@tail(article,{┗});
  1782.     case    (@getchar(article,1,3),
  1783.         {   },{article:=@getchar(article,4)},
  1784.         {*  },{article:=@getchar(article,4)}
  1785.         );
  1786.     InactMemo;
  1787.     setcdir(CDIR);
  1788.     case    (DEBUG,
  1789.         {Yes},{command({rct -LDT}|flg|{o }|TEMP)},
  1790.         {No},
  1791.         {
  1792.         dispoff({Yes});
  1793.         command({rct -LT}|flg|{o }|TEMP);
  1794.         dispoff({No});
  1795.         });
  1796.     mclear(memono);
  1797.     mread(TEMP2|{comtree0.tmp},memono);
  1798.     mopen(memono,0,181,639,459,{w});
  1799.     %moveline @noline(@head(@memo(memono),article));/*追加行*/
  1800.     curline(moveline+10);curline(moveline);         /*追加行*/
  1801.     im({Yes});
  1802.     };
  1803.  
  1804. /*ISHデータを解石する    */
  1805. %ISH    {%cdir    @getcdir;
  1806.     footnote({解石ファイルを保存するディレクトリに移動してキャンセルして下さい});
  1807.     filesel;footnote({ISHデータ解石中});command({ISH }|LOGFILE);
  1808.     setcdir(cdir)};
  1809. /************************************************************************
  1810. *    指定メモ内の98特殊文字をJIS文字に変換する            *
  1811. *************************************************************************/
  1812. %JIS98    {
  1813.     [memono]
  1814.     %cdir    @getcdir;
  1815.     footnote({98特殊文字をJIS文字に変換中});
  1816.     InactMemo;
  1817.     delfile(TEMP2|{doratxf.old});
  1818.     delfile(TEMP2|{doratxf.new});
  1819.     mwrite(TEMP2|{doratxf.old},memono);
  1820.     setcdir(CDIR);
  1821.     command({txf -a -n @}|CDIR2|{98_jis.txf -i }|
  1822.         TEMP2|{doratxf.old -o }|TEMP2|{doratxf.new});
  1823.     setcdir(cdir);
  1824.     mclear(memono);
  1825.     mread(TEMP2|{doratxf.new},memono);
  1826.     mopen(m1);
  1827.     im({Yes});
  1828.     };
  1829.  
  1830. %JIS98tre{
  1831.     [memono]
  1832.     %cdir    @getcdir;
  1833.     footnote({98特殊文字をJIS文字に変換中});
  1834.     InactMemo;
  1835.     delfile(TEMP2|{doratxf.old});
  1836.     delfile(TEMP2|{doratxf.new});
  1837.     mwrite(TEMP2|{doratxf.old},memono);
  1838.     dispoff({No});
  1839.     setcdir(CDIR);
  1840.     command({txf -a -n @}|CDIR2|{98_jis.txf -i }|
  1841.         TEMP2|{doratxf.old -o }|TEMP2|{doratxf.new});
  1842.     setcdir(cdir);
  1843.     mclear(memono);
  1844.     mread(TEMP2|{doratxf.new},memono);
  1845.     mopen(memono-1,0,181,639,459,{r});
  1846.     mclose(1);
  1847.     im({Yes});
  1848.     };
  1849.  
  1850. /************************************************************************
  1851. *    コメント作成処理                            *
  1852. *************************************************************************/
  1853. /*発言行で有れば「発言行」を返す処理*/
  1854. %SendLine{[sendL]
  1855.     case    (@getchar(sendL,1,2)={発}&&@getchar(sendL,5,2)={者}||
  1856.         @getchar(sendL,1,2)={送}&&@getchar(sendL,5,2)={者}||
  1857.         @getchar(sendL,1,2)={発}&&@getchar(sendL,7,2)={者}||
  1858.         @getchar(sendL,1,2)={送}&&@getchar(sendL,7,2)={者}||
  1859.         @getchar(sendL,1,2)={書}&&@getchar(sendL,7,2)={人}||
  1860.         @getchar(sendL,1,1)={S}&&@getchar(sendL,6,1)={r},
  1861.         {Yes}    ,{im({発言行})},
  1862.         {No}    ,{im({})});
  1863.     };
  1864. /*    通常モードからのコメント作成処理    */
  1865. %COMMENT{
  1866.     [memono]
  1867.     %LineNo @xlinenum;        /*カーソル位置の行数を返す*/
  1868.     COMMENT2(memono,LineNo);
  1869.     InactMemo;
  1870.     mopen(memono,0,21,639,459,{w});
  1871.     };
  1872. /*    ツリーモードからのコメント作成処理    */
  1873. %COMMENT1{
  1874.     [memono,lineno]
  1875.     COMMENT2(memono+2,lineno);
  1876.     InactMemo;
  1877.     mopen(memono+1,0,181,639,459,{r});
  1878.     mclose(1);
  1879.     im({Yes});
  1880.     };
  1881. /*    コメント作成処理の振り分け    */
  1882. %COMMENT2{[memono,LineNo]
  1883.     %MemoLine @nolmemo(memono)-1;    /*メモの総行数を返す*/
  1884.     %cdir    @getcdir;
  1885.     setcdir(CDIR);
  1886.     setcdir(cdir);
  1887.     case    (LineNo>MemoLine,
  1888.          {No},{case    (LineNo<=0,
  1889.                 {No},{
  1890.                 l1:=@getchar(@memo(memono,LineNo,1),1,80);
  1891.                 l5:=@getchar(@memo(memono,1,6),1,80);
  1892.                 })
  1893.         });
  1894.     case    (LineNo>MemoLine,{No},{case(LineNo<4,
  1895.             {No},{
  1896.             l2:=@getchar(@memo(memono,LineNo-1,1),1,80);
  1897.             l3:=@getchar(@memo(memono,LineNo-3,1),1,80);
  1898.             l4:=@getchar(@memo(memono,LineNo+2,1),1,80);
  1899.             l7:=@getchar(@memo(memono,LineNo+1,1),1,80);
  1900.             })
  1901.         });
  1902.     case    (@getchar(l1,11,12)={Private mail}||
  1903.         @getchar(l1,1,6)={メール}||
  1904.         @getchar(l1,11,13)={個人宛 お手紙},
  1905.         {Yes},{footnote({カーソルを宛先IDに置いて下さい});wait(2)},
  1906.         {No},    {
  1907.     case    (@getchar(l2,11,12)={Private mail}||
  1908.         @getchar(l2,1,6)={メール}||
  1909.         @getchar(l2,12,14)={メールボックス}||
  1910.         @getchar(l2,14,14)={テキストメール}||
  1911.         @getchar(l2,11,13)={個人宛 お手紙},
  1912.         {Yes},    {resMAIL},
  1913.         {No},    {
  1914.     case    (@getchar(l1,1,2)={伝}&&@getchar(l1,5,2)={板}||
  1915.         @getchar(l1,1,2)={で}&&@getchar(l1,5,2)={ご}||
  1916.         @getchar(l1,3,2)={発}&&@getchar(l1,6,2)={言}||
  1917.         @getchar(l1,1,1)={G}&&@getchar(l1,6,1)={r}||
  1918.         @getchar(l1,2,1)={G}&&@getchar(l1,7,1)={r}||
  1919.         @getchar(l1,1,1)={G}&&@getchar(l1,6,1)={R}||
  1920.         @getchar(l1,2,1)={G}&&@getchar(l1,7,1)={R}||
  1921.         @getchar(l1,2,1)={G}&&@getchar(l1,9,1)={:}||
  1922.         @getchar(l1,1,1)={G}&&@getchar(l1,8,1)={w},
  1923.         {Yes},    {Gather},
  1924.         {No},    {
  1925.     case    (@getchar(l1,9,4)={最後}&&@getchar(l1,15,4)={一言},
  1926.         {Yes},    {LastWard},
  1927.         {No},    {
  1928.     case    (@getchar(l1,6,1)={B}&&@getchar(l1,25,1)={K}||
  1929.         @getchar(l1,6,1)={T}&&@getchar(l1,25,1)={K}||
  1930.         @getchar(l1,6,1)={A}&&@getchar(l1,25,1)={K},
  1931.         {Yes},
  1932.         {
  1933.         case    (@getchar(l5,1,8)={ファイル},
  1934.             {Yes},
  1935.             {
  1936.             case    (@getchar(@head(l5,{パスワード},{・・・・・}),1,4)
  1937.                 ={は設},
  1938.                 {Yes},
  1939.                 {downDLIB(@getchar(@head(l5,{#},{・・・}),1,3)
  1940.                 ,NET,@getchar(l1,8,12))},
  1941.                 {No},
  1942.                 {downDLIB(@getchar(@head(l5,{#},{・・・}),1,3)
  1943.                 ,@head(l5,{パスワード},{・・・・・}),
  1944.                 @getchar(l1,8,12))}
  1945.                 )
  1946.             },
  1947.             {No},
  1948.             {case    (@getchar(l5,1,4)={LIB:},
  1949.                 {Yes},{downDLIB(@getchar(l5,5,3),NET,
  1950.                 @getchar(l1,8,12))},
  1951.                 {No},
  1952.                 {
  1953.                 case    (LineNo>4,
  1954.                     {Yes},
  1955.                     {l6:=@head(@tail(@memo(memono,1,
  1956.                     LineNo-4),{#},{・・・}),{ });
  1957.                     downDLIB(l6,NET,
  1958.                     @getchar(l1,8,12))},,
  1959.                     )
  1960.                 })
  1961.             })
  1962.         },
  1963.         {No},    {
  1964.     case    (@getchar(l1,1,2)={ボ}&&@getchar(l1,7,2)={名}||
  1965.         @getchar(l1,1,2)={ぼ}&&@getchar(l1,7,2)={名}||
  1966.         @getchar(l1,1,1)={S}&&@getchar(l1,6,1)={o},
  1967.         {Yes},    {sayMES(memono,@tail(l1,{#},{)}))},
  1968.         {No},    {
  1969.     case    (Btitle<>{NeW}&&@getchar(l1,1,1)={#}&&@getchar(l1,5,1)={ }||
  1970.         @getchar(l1,2,1)={#}&&@getchar(l1,6,1)={ },
  1971.         {Yes},    {sayMES(memono,@getchar(l1,2,3))},
  1972.         {No},    {
  1973.     case    (@getchar(l1,1,2)={発}&&@getchar(l1,5,2)={者}||
  1974.         @getchar(l1,1,2)={送}&&@getchar(l1,5,2)={者}||
  1975.         @getchar(l1,1,2)={発}&&@getchar(l1,7,2)={者}||
  1976.         @getchar(l1,1,2)={書}&&@getchar(l1,7,2)={人}||
  1977.         @getchar(l1,1,1)={S}&&@getchar(l1,6,1)={r},
  1978.         {Yes},    {resMES},
  1979.         {No},    {case    (Btitle,
  1980.                 {NeW},{footnote({カーソルをファイル名に}|
  1981.                         {置いて下さい。})},
  1982.                 {MaL},{footnote({[EXIT]・[戻る]ボタンのみ}|
  1983.                         {有効です。})},
  1984.                 ,{footnote({カーソルをボード名orファイル名 }|
  1985.                 {発言者行 or Gather >行に置いて下さい。})}
  1986.                 );wait(2)}
  1987.         )}    )}    )}    )}    )}    )}    )});
  1988.     im({Yes})};
  1989.  
  1990. /*    コメント作成処理    */
  1991. %MAKEcom{[flagHED]
  1992.     footnote({コメントを作成します});
  1993.     OpenMemo(flagHED);
  1994.     loop    ({
  1995.         footnote({終了取消参照清書CD辞参ESマトコメPROF},{b});
  1996.         waitx();
  1997.         case    (@xtype,
  1998.             101,{savememo},    201,{savememo},
  1999.             102,{cancel},    202,{cancel},
  2000.             103,{newmemo},    203,{newmemo},
  2001.             104,{rewrite},    204,{rewrite},
  2002.             105,{cddic},    205,{cddic},
  2003.             106,ESC2,    206,ESC2,
  2004.             107,{addhndl(memono)},207,{addhndl(memono)},
  2005.             108,{PROFILE(memono)},208,{PROFILE(memono)},
  2006.             ,{im({Yes})}
  2007.             );
  2008.         });
  2009.     };
  2010. /*    アップ用文書作成用メモをオープンする    */
  2011. %OpenMemo{[flagHED]
  2012.     InactMemo;
  2013.     mopen(memono,0,21,639,240,{w});
  2014.     mclose(1);
  2015.     mclear(memono+1);
  2016.     case    (flagHED={伝言},
  2017.         {No},{madd(memono+1,flagHED|{\n})},
  2018.         {Yes},{
  2019.         case    (@filechk(UP2|{DENGO}),
  2020.             {Yes},{madd(memono+1,@read(UP2|{DENGO}))},
  2021.             {No},{madd(memono+1,{})
  2022.             });
  2023.         });
  2024.     mopen(memono+1,0,241,639,459,{w});
  2025.     };
  2026. /*    コメント作成メモ中に『#9999  ハンドル』を追加する    */
  2027. %addhndl{
  2028.     [memono]
  2029.     %LineNo @xlinenum;        /*カーソル位置の行数を返す*/
  2030.     addhndl1(memono,LineNo);
  2031.     };
  2032. %addhndl1{
  2033.     [memono,LineNo]
  2034.     %MemoLine @nolmemo(memono)-1;    /*メモの総行数を返す*/
  2035.     %cdir    @getcdir;
  2036.     setcdir(CDIR);
  2037.     setcdir(cdir);
  2038.     InactMemo;
  2039.     case    (LineNo>MemoLine,
  2040.          {No},{case    (LineNo<=4,
  2041.                 {No},{
  2042.                 sl1:=@getchar(@memo(memono,LineNo,1),1,80);
  2043.                 })
  2044.         });
  2045.     case    (@SendLine(sl1)={発言行},
  2046.         {Yes},
  2047.         {
  2048.         case    ( @filechk(TEMP2|{_addhndl.tmp}),
  2049.             {Yes},{delfile(TEMP2|{_addhndl.tmp})});
  2050.         case    (LineNo-3>0,
  2051.             {Yes},{
  2052.                 sl3:=@getchar(@memo(memono,LineNo-3,1),1,80);
  2053.                 %resID    @strip(@head(sl1,{ [},{]}));
  2054.                 %reply    @strip(@body(sl3,{:},{/}));
  2055.                 mwrite(TEMP2|{_addhndl.tmp},memono+1);
  2056.                 write(TEMP2|{_addhndl.tmp},{\n #}|reply|
  2057.                         { }|resID|{さん\n});
  2058.                 mclear(memono+1);
  2059.                 mread(TEMP2|{_addhndl.tmp},memono+1);
  2060.                 mopen(memono+1,0,241,639,459,{w})},
  2061.             {No},{})
  2062.         },
  2063.         {No},{footnote({カーソルを発言者行に置いて下さい。});wait(2)}
  2064.         );
  2065.     InactMemo;
  2066.     };
  2067.  
  2068. /*    CD辞書を検索する    */
  2069. %cddic    {
  2070.     SNDMSG({kaknin_f.snd});
  2071.     footnote({CD-ROMに辞書をセットしてください});
  2072.     select({CD-ROMに辞書をセットしてください},
  2073.         Wtime4,,
  2074.         {  O K  },
  2075.         {
  2076.         InactMemo;
  2077.         %memono    @mlast+1;
  2078.         case    (memono>9,
  2079.             {Yes},
  2080.             {footnote({これ以上メモを開けません});wait(1)},
  2081.             {No},
  2082.             {
  2083.             madd(memono,{});
  2084.             mopen(memono,0,161,639,379);
  2085.             CDfind(memono);
  2086.             });
  2087.         },
  2088.         {  いいえ  },
  2089.         );
  2090.     footnote({});
  2091.     InactMemo;
  2092.     mopen(memono,0,21,639,240,{w});
  2093.     %memomax    @mlast;
  2094.     var    memono1    [2];
  2095.     memono1:=memono+2;
  2096.     loop    ({
  2097.         case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
  2098.         memono1:=memono1+1;
  2099.         im(memono1<=memomax);
  2100.         });
  2101.     mclose(1);
  2102.     mopen(memono+1,0,181,639,459,{w});
  2103.     im({Yes});
  2104.     };
  2105.  
  2106. /*    アップ文書作成をキャンセルする    */
  2107. %cancel    {
  2108.     SNDMSG({kaknin_f.snd});footnote({作成中の文書を取消しますか?});
  2109.     select({作成中の文書を取消しますか?},
  2110.         Wtime4,{footnote({});im({Yes})},
  2111.         {  は  い  },
  2112.         {
  2113.         InactMemo;
  2114.         delfile(TEMP2|{doramemo.bak});
  2115.         mwrite(TEMP2|{doramemo.bak},memono+1);
  2116.         DeleteMemo(memono+1);
  2117.         footnote({});
  2118.         im({No})},
  2119.         {  いいえ  },{footnote({});im({Yes})}
  2120.         );
  2121.     };
  2122. /*    アップ用文書を清書する    */
  2123. %rewrite{
  2124.     footnote({メモ}|memono+1|{を清書しています});
  2125.     InactMemo;
  2126.     %cdir @getcdir;
  2127.     setcdir(CDIR);
  2128.     delfile(TEMP2|{doratext.tmp});
  2129.     delfile(TEMP2|{doratext.new});
  2130.     mwrite(TEMP2|{doratext.tmp},memono+1);
  2131.     dispoff(!DEBUG);
  2132.     command({txf -f -i }|TEMP2|{doratext.tmp -o }|TEMP2|{doratext.new });
  2133.     dispoff({No});
  2134.     setcdir(cdir);
  2135.     case    (@filechk(TEMP2|{doratext.new}),
  2136.         {Yes},
  2137.         {
  2138.         mclear(memono+1);
  2139.         mread(TEMP2|{doratext.new},memono+1);
  2140.         mopen(memono,0,21,639,240,{w});
  2141.         %memomax    @mlast;
  2142.         var    memono1    [2];
  2143.         memono1:=memono+2;
  2144.         loop    ({
  2145.             case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
  2146.             memono1:=memono1+1;
  2147.             im(memono1<=memomax);
  2148.             });
  2149.         mclose(1);
  2150.         mopen(memono+1,0,241,639,459,{w});
  2151.         },
  2152.         {No},
  2153.         {
  2154.         display({清書機能には TXF.EXE がパスの通った}|
  2155.             {ディレクトリに必要です\n});
  2156.         wait(2);
  2157.         mopen(memono,0,21,639,240,{w});
  2158.         %memomax    @mlast;
  2159.         var    memono1    [1];
  2160.         memono1:=memono+2;
  2161.         loop    ({
  2162.             case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
  2163.             memono1:=memono1+1;
  2164.             im(memono1<=memomax);
  2165.             });
  2166.         mclose(1);
  2167.         mopen(memono+1,0,181,639,459,{w});
  2168.         });
  2169.     setcdir(cdir);
  2170.     im({Yes});
  2171.     };
  2172. /*    他のファイルを参照するためにメモを開く    */
  2173. %newmemo{
  2174.     case    (@mlast==9,
  2175.         {Yes},
  2176.         {
  2177.         footnote({メモ番号が一杯のため、新しいメモが開けません});
  2178.         wait(2);
  2179.         },
  2180.         {No},
  2181.         {
  2182.         case(@mcheck!=0,{Yes},{mclose(1)});
  2183.         %memono    @mlast+1;
  2184.         madd(memono,{\n});
  2185.         mclear(memono);
  2186.         %file1    @filesel;
  2187.         case    (file1<>{}&&@filechk(file1),
  2188.             {Yes},{mread(file1,memono)}
  2189.             );
  2190.         mopen(memono,0,161,639,379);
  2191.         });
  2192.     im({Yes});
  2193.     };
  2194. /* 伝言板(時差チャット)へのコメント作成処理 */
  2195. %Gather{
  2196.     %savememo{rtCHK(memono+1);
  2197.         case(@mcheck!=0,{Yes},{mclose(1)});
  2198.         mwrite(UP2|{DENGO},memono+1);
  2199.         case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  2200.         mclose(3);InactMemo;mopen(memono,0,21,639,459,{w});im({No})
  2201.         };
  2202.     footnote({伝言板へのコメントを作成します});
  2203.     MAKEcom({伝言});
  2204.     };
  2205. /* 『最後の一言』へのコメント作成処理 */
  2206. %LastWard{
  2207.         %LASTset{
  2208.         case(@filechk(UP2|{SAIGO}),
  2209.         {Yes},{delfile(UP2|{SAIGO});write(UP2|{SAIGO},sai)},
  2210.         {No},{write(UP2|{SAIGO},sai)})};
  2211.     footnote({注意;この機能はKMF版 RTBBS-NETのみ有効です});
  2212.     %a    @plane(    {c最後の一言へのコメントをして下さい\n}|
  2213.     {tコメント/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n}|
  2214.             {s              / 登録 / 取消 \n},
  2215.                 );
  2216. %sai    @head(@getline(a,1,1),{\n});%ok    @head(@getline(a,2,1),{\n});
  2217.         case    (ok==1,{Yes},
  2218.             {footnote({最後の一言へのコメントを作成します});
  2219.             LASTset})
  2220.     };
  2221. /* ヘッダフッタ作成処理 */
  2222. %makeHdFt{[mes]
  2223.     var HeDa[140];var MiDL[58];var FuTa[65];
  2224.     case    (Futless,
  2225.         {Yes},{FuTa:={}},
  2226.         ,{
  2227.         case    (FUTA={},
  2228.             {No},{FuTa:=@SPP(FUTA,41,)},
  2229.             {Yes},{
  2230.             case    (HedFut={},
  2231.                 {Yes},{FuTa:={}},
  2232.                 {No},{FuTa:={                  }|ID|{ }|HanDLe}
  2233.                 );
  2234.             });
  2235.         });
  2236.     case    (resID<>{},
  2237.         {Yes},
  2238.         {
  2239.         case    (HedFut,
  2240.             {Std},
  2241.             {HeDa:=@im({#}|reply|{ }|resID|{さん})},
  2242.             {Jap},
  2243.             {HeDa:=@im({  }|HanDLe|{です。\n\n #}
  2244.             |reply|{『}|Altitl|{』の発言で、\n }|
  2245.             resID|{さん は書きました})},
  2246.             {Als},
  2247.             {HeDa:=@im(resID|{さん、}|Date|{『}|Altitl|
  2248.             {』へのレスポンス})},
  2249.             {art},
  2250.             {var Lnet[5];var charNo[1];var n[1];
  2251.             n:=1;
  2252.             loop    ({
  2253.                 %a    @getchar(NET,n,1);
  2254.                 case    (a,
  2255.                     {},{im({No})},
  2256.                     ,{Lnet:=Lnet|@tosmall(a);
  2257.                         n:=n+1;im({Yes})
  2258.                     })
  2259.                 });
  2260.             charNo:=@nochar(NET);
  2261.             HeDa:=@im({  }|HanDLe|{です。\n\n}|{ In article <}|
  2262.             reply|{@}|Lnet|{.}|mes|{>\n }|resIDno|{@}|Lnet|
  2263.             {.rtbbs.or.jp (}|resID|{ ) さん writes:\n})
  2264.             },
  2265.             ,);
  2266.         },
  2267.         {No},
  2268.         {HeDa:={}
  2269.         });
  2270.     case    (HedFut={} && FUTA={},
  2271.         {Yes},{MiDL:={}},
  2272.         {No},{MiDL:={\n\n\n                               }});
  2273.     case    (HeDa={} && FuTa<>{},
  2274.         {Yes},{flagHED:=MiDL|FuTa},
  2275.         {No},{
  2276.         case    (HeDa<>{} && FuTa={},
  2277.             {Yes},{flagHED:=HeDa},
  2278.             {No},{
  2279.             case    (HeDa<>{} && FuTa<>{},
  2280.                 {Yes},{flagHED:=HeDa|MiDL|FuTa},
  2281.                 {No},{flagHED:={}
  2282.                 });
  2283.             });
  2284.         });
  2285.      };
  2286. /* ボードへのコメント作成処理 */
  2287. %resMES    {
  2288.     var forum[12];    var mes[3];    var reply[4];
  2289.     %c1 @case(@nochar(l4)-12<=0,{Yes},{im(1)},{No},{im(@nochar(l4)-12)});
  2290.     %Date    @getchar(l7,11,8);
  2291.     %title    @tail(@getchar(l4,11,c1),{]:});
  2292.     var ok[2];
  2293.     %Altitl @getchar(l4,11,c1);
  2294.     %resID    @strip(@head(l1,{ [},{]}));
  2295.     %resIDno@strip(@head(l1,{: },{ [}));
  2296.     %savememo{
  2297.         %cdir    @getcdir;setcdir(CDIR);
  2298.         mes:=    @tail(l2,{#},{)});
  2299.         %resp    @head(@head(l1,{: },{ [}),{ });
  2300.         reply:=    @strip(@body(l3,{:},{/}));
  2301.     loop    ({
  2302.         SNDMSG({nyuryo_f.snd});
  2303.         %a    @plane(
  2304.                 {cボードへのコメント\n}|
  2305.                 {tネット名  /xxxxxxxx\n}|
  2306.                 {cCUGボードの場合はネット名の代わりに\n}|
  2307.                 {cパスワードを入力して下さい\n}|
  2308.                 {tボード番号  /xxxx\n}|
  2309.                 {s                    /検索 \n}|
  2310.                 {tコメント元番号/xxxx\n}|
  2311.                 {tタイトル      /xxxxxxxxxxxxxxxxxxxx}|
  2312.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  2313.                 {c\n}|
  2314.                 {s             / 登録 / メール  / 取消 \n}|
  2315.                 {c通常のRESなら「登録」、メールの場合は「メール」ボタン\n}|
  2316.                 {cボード移動レスの場合は「検索」ボタン\n}|
  2317.                 {cメール送付時には”タイトル ”の入力を忘れずに\n}|
  2318.                 {tメール宛先    /xxxxxxxxx\n},
  2319.                 @SCANPW(mes),mes,reply,title,resp);
  2320.         forum:=    @head(@getline(a,1,1),{\n});
  2321.         mes:=    @head(@getline(a,2,1),{\n});
  2322.         %sarch1 @head(@getline(a,3,1),{\n});
  2323.         reply:=    @head(@getline(a,4,1),{\n});
  2324.         %title    @head(@getline(a,5,1),{\n});
  2325.         ok:=    @head(@getline(a,6,1),{\n});
  2326.         %resp    @head(@getline(a,7,1),{\n});
  2327.         case    (sarch1,
  2328.             { 1},{MorL:={BoD};DeLog:={No};
  2329.             %mes1   @MLserch(mes,MorL);
  2330.             reply:={};
  2331.             case    (mes1,{},,,{mes:=mes1});DeLog:={};
  2332.             im({Yes})
  2333.             });
  2334.         case    (ok,
  2335.             { 1},
  2336.             {
  2337.             footnote({ボードへのコメントを作成します});
  2338.             %file1    @crefile(UP,{res});
  2339.             case(@mcheck!=0,{Yes},{mclose(1)});
  2340.             mwrite(UP2|file1,memono+1);
  2341.             mopen(memono+1,0,241,639,459,{w});
  2342.             %res1    {forum=}|forum|{;mes=}|mes|{;reply=}|reply|
  2343.                 {;file=}|UP2|file1|{;title=}|title|CRLF;
  2344.             write(UP2|{doraup.ctl},res1);
  2345.             case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  2346.             mclose(3);
  2347.             InactMemo;
  2348.             mopen(memono,0,21,639,459,{w});
  2349.             im({No});
  2350.             },
  2351.             { 2},
  2352.             {
  2353.             footnote({発言者へのメールを作成します});
  2354.             %file1    @crefile(UP,{res});
  2355.             case(@mcheck!=0,{Yes},{mclose(1)});
  2356.             mwrite(UP2|file1,memono+1);
  2357.             mopen(memono+1,0,241,639,459,{w});
  2358.             %res1    {mail=}|resp|{;date=;}|
  2359.                 {file=}|UP2|file1|{;title=}|title|CRLF;
  2360.             write(UP2|{doraup.ctl},res1);
  2361.             case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  2362.             mclose(3);
  2363.             InactMemo;
  2364.             mopen(memono,0,21,639,459,{w});
  2365.             im({No});
  2366.             },
  2367.             { 3},
  2368.             );
  2369.         });
  2370.         };
  2371.             var flagHED[230];
  2372.             %m @nochar(title);
  2373.             %Title @getchar(title,1,m-1);
  2374.             makeHdFt(mes);
  2375.             MAKEcom(flagHED);
  2376.     };
  2377. /* ボードへの新規発言作成処理 */
  2378. %sayMES    {[memono,mesno]
  2379.     %savememo{
  2380.         SNDMSG({nyuryo_f.snd});
  2381.         %a    @plane(    {cボードへの新規発言\n}|
  2382.                 {tネット名  /xxxxxxxx\n}|
  2383.                 {cCUGボードの場合はネット名の代わりに\n}|
  2384.                 {cパスワードを入力して下さい\n}|
  2385.                 {tボード番号    /xxxxx\n}|
  2386.                 {tタイトル      /xxxxxxxxxxxxxxxxxxxxxxx}|
  2387.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  2388.                 {s              / 登録 / 取消 \n},
  2389.                 @SCANPW(mesno),mesno,
  2390.                 );
  2391. %forum    @head(@getline(a,1,1),{\n});    %mes    @head(@getline(a,2,1),{\n});
  2392. %title    @head(@getline(a,3,1),{\n});    %ok    @head(@getline(a,4,1),{\n});
  2393.     case    (ok,
  2394.         { 1},
  2395.         {case    (forum={}||mes={}||title={},
  2396.             {Yes},{im({Yes})},
  2397.             {No},{
  2398.             footnote({ボードへの新規発言を作成します});
  2399.             %file1    @crefile(UP,{res});
  2400.             case(@mcheck!=0,{Yes},{mclose(1)});
  2401.             mwrite(UP2|file1,memono+1);
  2402.             mopen(memono+1,0,241,639,459,{w});
  2403.             %res1    {forum=}|forum|{;mes=}|mes|{;reply=;}|
  2404.                 {file=}|UP2|file1|{;title=}|title|CRLF;
  2405.             write(UP2|{doraup.ctl},res1);
  2406.             case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  2407.             mclose(3);
  2408.             InactMemo;
  2409.             mopen(memono,0,21,639,459,{w});
  2410.             im({No})
  2411.             })
  2412.         },
  2413.         { 2},{im({Yes})})};
  2414.         var flagHED[210];
  2415.         %Title {};%Altitl {};%reply {};%resID {};
  2416.         makeHdFt(mesno);
  2417.         MAKEcom(flagHED);
  2418.     };
  2419. /* メールへの返信作成処理 */
  2420. %resMAIL{
  2421.     %c1 @case(@nochar(l4)-12<=0,{Yes},{im(1)},{No},{im(@nochar(l4)-12)});
  2422.     %Date    @getchar(l7,11,8);
  2423.     %title    @tail(@getchar(l4,11,c1),{]:});
  2424.     %Altitl @getchar(l4,11,c1);
  2425.     %resID    @strip(@head(l1,{ [},{]}));
  2426.     %resIDno{};
  2427.     %reply    @strip(@body(l3,{:},{/}));
  2428.     %savememo{
  2429.         %cdir    @getcdir;setcdir(CDIR);
  2430.         %mes    @tail(l2,{#},{)});
  2431.         %resp    @head(@head(l1,{: },{ [}),{ });
  2432.         SNDMSG({nyuryo_f.snd});
  2433.         %a    @plane(    {cメールの返信\n}|
  2434.                 {t  送信先ID  /xxxxxxxxx\n}|
  2435.                 {t   タイトル   /xxxxxxxxxxxxxxxxxxxx}|
  2436.                         {xxxxxxxxxxxxxxxxxxxx\n}|
  2437.                 {s              / 登録 / 取消 \n},
  2438.                 @head(@head(l1,{: },{ [}),{ }),
  2439.                 {re*}|@head(@getchar(l4,11,c1),{\n})
  2440.                 );
  2441.     %mail    @head(@getline(a,1,1),{\n});
  2442.     %title    @head(@getline(a,2,1),{\n});
  2443.     %ok    @head(@getline(a,3,1),{\n});
  2444.     case    (ok,
  2445.         { 1},
  2446.         {footnote({メールの返信を作成します});
  2447.         %file1    @crefile(UP,{res});
  2448.         case(@mcheck!=0,{Yes},{mclose(1)});
  2449.         mwrite(UP2|file1,memono+1);
  2450.         mopen(memono+1,0,241,639,459,{w});
  2451.         %res1    {mail=}|mail|{;file=}|UP2|file1|{;title=}|title|CRLF;
  2452.         write(UP2|{doraup.ctl},res1);
  2453.         case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
  2454.         mclose(3);InactMemo;mopen(memono,0,21,639,459,{w});
  2455.         im({No})
  2456.         },
  2457.         { 2},{im({Yes})}
  2458.         ,{im({Yes})})};
  2459.         var flagHED[210];
  2460.         %m @nochar(title);
  2461.         %Title @getchar(title,1,m-1);
  2462.         %mes {mail};
  2463.         makeHdFt(mes);
  2464.         MAKEcom(flagHED);
  2465.     };
  2466.  
  2467. /* DLIBからのダウンロード制御文作成処理 */
  2468. %downDLIB{[LibNo,PASS,name]
  2469.     display(PASS);
  2470.     %downHLP{☆データファイルは既に取得済☆
  2471.  
  2472.     [登録]ボタンを押しても「既に取得済」のコメントが出たのは
  2473.  
  2474.          \nアクセスdat\DOWNRATE.DAT(ダウンロード記録)に同名のファイルダウン記録が
  2475.     登録されているからです。あえて再度ファイルダウンを実行したい場合は
  2476.     DOWNRATE.DATに記載されている同名のファイルダウン記録を削除して下さい。
  2477.         };
  2478.     var DataFile[64];
  2479.     var DocFile[64];
  2480.     var forum[8];    var libno[4];    var dataname[12];    
  2481.     var datafile[64];var docfile[64];
  2482.     %name @strip(@body(name,,{.}))|{.}|@tail(name,{.});
  2483.     case    (@nochar(FSW),
  2484.         0,
  2485.         {
  2486.         DataFile:=LOG2|{FREESOFT\}|name;
  2487.         DocFile    :=LOG2|{FREESOFT\}|@body(name,,{.})|{.ggg};
  2488.         },
  2489.         3,
  2490.         {
  2491.         DataFile:=FSW|name;
  2492.         DocFile    :=FSW|@body(name,,{.})|{.ggg};
  2493.         },
  2494.         ,
  2495.         {
  2496.         DataFile:=FSW|{\}|name;
  2497.         DocFile    :=FSW|{\}|@body(name,,{.})|{.ggg};
  2498.         });
  2499.     %Dldir LOG2|{アクセスdat\downrate.dat};
  2500.     %Dll @case(@filechk(Dldir),
  2501.         {Yes},{im(@read(LOG2|{アクセスdat\downrate.dat}))},,{im({})});
  2502.     loop    ({SNDMSG({nyuryo_f.snd});
  2503.         %a    @plane(    {cデータライブラリからのダウンロード\n}|
  2504.             {t ネット名 /xxxxxxxx\n}|
  2505.             {cCUGボードの場合はネット名の代わりに\n}|
  2506.             {cパスワードを入力して下さい\n}|
  2507.             {tライブラリ番号/xxxx\n}|
  2508.             {tデータ名称/xxxxxxxxxxxx\n}|
  2509.             {tダウンロードファイル/\n}|
  2510.             {t 概要ファイル /\n}|
  2511.             {rダウンロード予約  /予約  /保留 \n}|
  2512.             {s       / 登録 / 取消 / HELP \n},
  2513.             PASS,LibNo,name,DataFile,DocFile);
  2514.         forum:=    @head(@getline(a,1,1),{\n});
  2515.         libno:=    @head(@getline(a,2,1),{\n});
  2516.         dataname:=@head(@getline(a,3,1),{\n});
  2517.         datafile:=@head(@getline(a,4,1),{\n});
  2518.         docfile:=@head(@getline(a,5,1),{\n});
  2519.         %reserv    @head(@getline(a,6,1),{\n});
  2520.         %ok @head(@getline(a,7,1),{\n});
  2521.         case    (ok,
  2522.             { 1},
  2523.             {case    ((datafile={}||@getchar(datafile,2,2)={:\})&&
  2524.                  @getchar(docfile,2,2)={:\},
  2525.                 {No},
  2526.                 {display({ファイル名はドライブ名からの}|
  2527.                 {パスで指定してください});im({Yes})},
  2528.                 {Yes},
  2529.                 {
  2530.                 case    (@exist(Dll,name),
  2531.                     {Yes},
  2532.                     {
  2533.                     footnote({このデータファイルは既に}|
  2534.                     {取得済です[取消]ボタンを選択下さい});
  2535.                     wait(2);im({Yes})
  2536.                     },
  2537.                     {No},
  2538.                     {
  2539.                     case    (forum<>{} && libno<>{} &&
  2540.                         dataname<>{} && datafile<>{},
  2541.                         {Yes},
  2542.                         {
  2543.                         footnote({制御文を登録します});
  2544.                         write(UP2|{doradown.ctl},
  2545.                         @RESERV(reserv)|{forum=}|forum|
  2546.                         {;libno=}|libno|{;dataname=}|
  2547.                         dataname|{;docfile=}|docfile|
  2548.                         {;datafile=}|datafile|{;\n});
  2549.                         case    (@mcheck!=memono,
  2550.                             {Yes},{mopen(memono)}
  2551.                             );im({No});
  2552.                         },
  2553.                         {No},
  2554.                         {footnote({必要な項目指定が}|
  2555.                         {不足しています});
  2556.                         im({Yes})
  2557.                         });
  2558.                     });
  2559.                 });
  2560.             },
  2561.             { 2},{im({No})},
  2562.             { 3},{HLPview(downHLP);im({Yes})},,{im({Yes})
  2563.             });
  2564.         });
  2565.     };
  2566. /* NAPLPSファイル表示処理 */
  2567. %ViewNAP{[file,memono]
  2568.     InactMemo;
  2569.     naplps(file);
  2570.     footnote({EXIT再現},{b});
  2571.     loop    ({
  2572.         waitx();
  2573.         case    (@xtype,
  2574.             101,
  2575.             {
  2576.             napend;
  2577.             footnote({});
  2578.             mopen(memono,0,21,639,459,{w});
  2579.             im({No});
  2580.             },
  2581.             201,
  2582.             {
  2583.             napend;
  2584.             footnote({});
  2585.             mopen(memono,0,21,639,459,{w});
  2586.             im({No});
  2587.             },
  2588.             102,{napend;naplps(file);im({Yes})},
  2589.             202,{napend;naplps(file);im({Yes})},
  2590.             ,{im({Yes})}
  2591.             );
  2592.         });
  2593.     im({Yes});
  2594.     };
  2595. %CanCOMENT{
  2596.     footnote({指定するディレクトリに移動してキャンセルして下さい});
  2597.     };
  2598. /************************************************************************
  2599. *    プロフィール参照、プロフィールダウンロード予約            *
  2600. *************************************************************************/
  2601. %PROFILE{
  2602.     [m1]
  2603.     %LineNo @xlinenum;        /*カーソル位置の行数を返す*/
  2604.     PROFILE1(m1,LineNo);
  2605.     };
  2606. %PROFILE1{
  2607.     [m1,LineNo]
  2608.     %MemoLine @nolmemo(m1);    /*メモの総行数を返す*/
  2609.     %cdir    @getcdir;
  2610.     setcdir(CDIR);
  2611.     setcdir(cdir);
  2612.     InactMemo;
  2613.     case    (LineNo>MemoLine,
  2614.          {No},{case    (LineNo<=4,
  2615.                 {No},{
  2616.                 sl1:=@getchar(@memo(m1,LineNo,1),1,80);
  2617.                 })
  2618.         });
  2619.     case    (@SendLine(sl1)={発言行},
  2620.         {No},{footnote({カーソルを発言者行に置いて下さい。});wait(2)},
  2621.         {Yes},    
  2622.         {
  2623.         %id    @head(@head(sl1,{: },{ [}),{ });
  2624.         %prf    LOG2|{PROFILE\}|id|{.PRF};
  2625.         case    (@filechk(prf),
  2626.             {Yes},
  2627.             {
  2628.             madd(m1+1,{});
  2629.             mread(prf,m1+1);
  2630.             mopen(m1+1,0,181,639,459,{r});
  2631.             loop    ({
  2632.             footnote({終了ESC },{b});
  2633.                 waitx();
  2634.                 case    (@xtype,
  2635.                     {101},{im({No})},
  2636.                     {201},{im({No})},
  2637.                     102,{ESC3;im({Yes})},
  2638.                     202,{ESC3;im({Yes})},
  2639.                     ,{im({Yes})}
  2640.                     );
  2641.                 });
  2642.             DeleteMemo(m1+1);
  2643.             },
  2644.             {No},
  2645.             {
  2646.             /* PROFILE取得予約処理 */
  2647.             footnote(id|{のプロフィール情報がありません。}|
  2648.                 {ダウンード予約をしますか?});
  2649.             SNDMSG({erande_f.snd});
  2650.             select    (id|
  2651.                 {のダウンロード予約をおこないますか},
  2652.                 Wtime4,,
  2653.                 {  す  る  },
  2654.                 {write(UP2|{doradown.ctl},
  2655.                     {profile=}|id|{;\n})},
  2656.                 {  しない  },
  2657.                 );
  2658.             });
  2659.         });
  2660.     InactMemo;
  2661.     im({Yes});
  2662.     };
  2663.  
  2664. %SETDIR    {
  2665.     var TodayLoG[16];
  2666.     case    (@filechk(LOG2|NET|@getMD(0)|{.LOG}),
  2667.         {Yes},{TodayLoG:={本日のログを読む};
  2668.             Todayfile:=@im(LOG2|NET|@getMD(0)|{.LOG})},
  2669.         {No},{
  2670.         case    (@filechk(LOG2|NET|@getMD(1)|{.LOG}),
  2671.             {Yes},{TodayLoG:={昨日のログを読む};
  2672.                 Todayfile:=@im(LOG2|NET|@getMD(1)|{.LOG})},
  2673.             {No},{TodayLoG:={本日のログ未取得};
  2674.                 Todayfile:={本日のログ}
  2675.             })
  2676.         });
  2677.     footnote({参照するログファイルのディレクトリを指定してください});
  2678.     SNDMSG({erande_f.snd});
  2679.     case    (RTTLC<>{},
  2680.         {Yes},
  2681.         {
  2682.         case    (VIEWLOG={},
  2683.             {Yes},
  2684.             {
  2685.             select({参照するログディレクトリは?(*項目はRTTLC実行}|
  2686.                 {後有効です)},
  2687.                 Wtime4,{im(LOG)},
  2688.                 LOG,{Btitle:={};im(LOG)},
  2689.                 TodayLoG,
  2690.                     {Btitle:={ToD};im(@body(LOG2,,{\}))},
  2691.                 {バックログ},
  2692.                     {Btitle:={BaC};im({*BACKLOG})},
  2693.                 {NEWS情報を見る},
  2694.                     {Btitle:={NeW};im(LOG2|{fnews})},
  2695.                 {*RTTLC出力ディレクトリ},{im(RTTLdir)},
  2696.                 {*伝言板を読む},
  2697.                     {Btitle:={DeN};im(@body(LOG2,,{\}))},
  2698.                 {*ボードタイトルから選択},
  2699.                     {Btitle:={BoD};im(LOG2|{board})},
  2700.                 {ファイルボードタイトルから選択},
  2701.                     {Btitle:={FiL};im(LOG2|{datalib})},
  2702.                 {*電子メールを読む},
  2703.                     {Btitle:={MiL};im(@body(LOG2,,{\}))},
  2704.                 {一時的に指定},
  2705.                 {CanCOMENT;SNDMSG({erande_f.snd});filesel;
  2706.                 VIEWLOG:=@getcdir;
  2707.                 im(@getcdir);
  2708.                 },
  2709.                 {  取消},
  2710.                 {im({});FLG:={Return}});
  2711.             },
  2712.             {No},
  2713.             {
  2714.             select({参照するログディレクトリは?(*項目はRTTLC実行}|
  2715.                 {後有効です)},
  2716.                 Wtime4,{im(LOG)},
  2717.                 LOG,{Btitle:={};im(LOG)},
  2718.                 TodayLoG,
  2719.                     {Btitle:={ToD};im(@body(LOG2,,{\}))},
  2720.                 {バックログ},
  2721.                     {Btitle:={BaC};im({*BACKLOG})},
  2722.                 {NEWS情報を見る},
  2723.                     {Btitle:={NeW};im(LOG2|{fnews})},
  2724.                 {*RTTLC出力ディレクトリ},{im(RTTLdir)},
  2725.                 {*伝言板を読む},
  2726.                     {Btitle:={DeN};im(@body(LOG2,,{\}))},
  2727.                 {*ボードタイトルから選択},
  2728.                     {Btitle:={BoD};im(LOG2|{board})},
  2729.                 {ファイルボードタイトルから選択},
  2730.                     {Btitle:={FiL};im(LOG2|{datalib})},
  2731.                 {*電子メールを読む},
  2732.                     {Btitle:={MiL};im(@body(LOG2,,{\}))},
  2733.                 VIEWLOG,{im(VIEWLOG)},
  2734.                 {一時的に指定},
  2735.                 {CanCOMENT;SNDMSG({erande_f.snd});filesel;
  2736.                 im(@getcdir);
  2737.                 },
  2738.                 {  取消},
  2739.                 {im({});FLG:={Return}});
  2740.             });
  2741.         },
  2742.         {No},
  2743.         {
  2744.         case    (VIEWLOG={},
  2745.             {Yes},
  2746.             {
  2747.             select({参照するログディレクトリは?(*項目はRTTLC実行}|
  2748.                 {後有効です)},
  2749.                 Wtime4,{im(LOG)},
  2750.                 LOG,{Btitle:={};im(LOG)},
  2751.                 TodayLoG,
  2752.                     {Btitle:={ToD};im(@body(LOG2,,{\}))},
  2753.                 {バックログ},
  2754.                     {Btitle:={BaC};im({*BACKLOG})},
  2755.                 {NEWS情報を見る},
  2756.                     {Btitle:={NeW};im(LOG2|{fnews})},
  2757.                 {*ボードタイトルから選択},
  2758.                     {Btitle:={BoD};im(LOG2|{board})},
  2759.                 {ファイルボードタイトルから選択},
  2760.                     {Btitle:={FiL};im(LOG2|{datalib})},
  2761.                 {*電子メールを読む},
  2762.                     {Btitle:={MiL};im(@body(LOG2,,{\}))},
  2763.                 {*伝言板を読む},
  2764.                     {Btitle:={DeN};im(@body(LOG2,,{\}))},
  2765.                 {一時的に指定},
  2766.                 {CanCOMENT;SNDMSG({erande_f.snd});filesel;
  2767.                 VIEWLOG:=@getcdir;
  2768.                 im(@getcdir);
  2769.                 },
  2770.                 {  取消},
  2771.                 {im({});FLG:={Return}});
  2772.             },
  2773.             {No},
  2774.             {
  2775.             select({参照するログディレクトリは?(*項目はRTTLC実行}|
  2776.                 {後有効です)},
  2777.                 Wtime4,{im(LOG)},
  2778.                 LOG,{Btitle:={};im(LOG)},
  2779.                 TodayLoG,
  2780.                     {Btitle:={ToD};im(@body(LOG2,,{\}))},
  2781.                 {バックログ},
  2782.                     {Btitle:={BaC};im({*BACKLOG})},
  2783.                 {NEWS情報を見る},
  2784.                     {Btitle:={NeW};im(LOG2|{fnews})},
  2785.                 {*ボードタイトルから選択},
  2786.                     {Btitle:={BoD};im(LOG2|{board})},
  2787.                 {ファイルボードタイトルから選択},
  2788.                     {Btitle:={FiL};im(LOG2|{datalib})},
  2789.                 {*電子メールを読む},
  2790.                     {Btitle:={MiL};im(@body(LOG2,,{\}))},
  2791.                 {*伝言板を読む},
  2792.                     {Btitle:={DeN};im(@body(LOG2,,{\}))},
  2793.                 VIEWLOG,{im(VIEWLOG)},
  2794.                 {一時的に指定},
  2795.                 {CanCOMENT;SNDMSG({erande_f.snd});filesel;
  2796.                 im(@getcdir);
  2797.                 },
  2798.                 {  取消},
  2799.                 {im({});FLG:={Return}});
  2800.             });
  2801.         });
  2802.     };
  2803. /* 三ヵ月前迄を計算 */
  2804.     var LOGFILE1 [64];var LOGFILE2 [64];var LOGFILE3 [64];
  2805.     var DAY1[24];var DAY2[2];var DAY3[2];var DAY4[2];var DAY5[2];
  2806.     DAY1:=@daylong;
  2807.     DAY2:=@im(@getchar(DAY1,6,2));DAY5:=@im(@getchar(DAY1,9,2));
  2808.     case    (DAY2,
  2809.         {01},{DAY3:={12};DAY4:={11}},{02},{DAY3:={01};DAY4:={12}},
  2810.         {03},{DAY3:={02};DAY4:={01}},{04},{DAY3:={03};DAY4:={02}},
  2811.         {05},{DAY3:={04};DAY4:={03}},{06},{DAY3:={05};DAY4:={04}},
  2812.         {07},{DAY3:={06};DAY4:={05}},{08},{DAY3:={07};DAY4:={06}},
  2813.         {09},{DAY3:={08};DAY4:={07}},{10},{DAY3:={09};DAY4:={08}},
  2814.         {11},{DAY3:={10};DAY4:={09}},{12},{DAY3:={11};DAY4:={10}}
  2815.         );
  2816. /* 受信ログ参照処理メイン */
  2817. var    fn    [64];var    l1    [82];var    l2    [82];
  2818. var    l3    [82];var    l4    [82];var    l5    [82];
  2819. var    l6    [120];var    l7    [82];var    sl1    [82];
  2820. var    sl3    [82];var    DOCFILE    [64];var    DATAFILE[64];
  2821. var    LOGFILE [64];var    LineNo     [6];var    MemoLine [6];
  2822. var    line1    [128];var    file1    [64];var    Todayfile[76];
  2823. var    current    [2];
  2824. var    dirlist    [640];
  2825.  
  2826. current:=0;
  2827. dirlist:=CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF;
  2828. FLG:={};
  2829. footnote({受信ログを参照します});
  2830. %memono    @mlast+1;
  2831. loop    ({
  2832.     %setdir    @SETDIR;
  2833.     case(setdir,{},,,{DELDIRF;ViewLOG(setdir,memono,0);DELDIRF});
  2834.     case(FLG,{Return},{im({No})},,{im({Yes})});
  2835.     });